اجرای جاوا اسکریپت در آژاکس

mamylo

New Member
دوستان عزیز این سوالو تو کل وب گشتم انگار کسی نیست جواب بده:

من می خوام وقتی یه صفحه رو تو یه دیو باز می کنم کدهای جاوا اسکریپتیم که توشن باز شن، ولی نمی شن

چیکار باید بکنم:-?
 

mosi20

Active Member
سلام
اینکه خیلی سادس!!!!!!!!
باید وقتی با آژاکس چیزی را میگیری جاوا هاش را جدا کنی و اجراشون کنی
میتونی از کد زیر بعد از دریافت اطلاعات با آژاکس استفاده کنی

HTML:
<script>
function doeval(js){
	if(js!=null){
	var sc = document.createElement('script');
	sc.type = 'text/javascript';
	document.getElementsByTagName('head')[0].appendChild(sc);
	sc.text = js;
	}
}


function getscript(str){
let_out=str;
    var reg = new RegExp( '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)', "img" );
    var i=1;  
    var s=1;  
    while ( s = reg.exec ( let_out ) ) {
	   doeval( s[1] );
    }
}
</script>
 

mamylo

New Member
دوست من دستت درد نکنه
ولی نفهمیدم چجور استفاده کنم ازش. ایو باید کجا و چجوری بذارم تو صفحه م؟

می دونین من چی دارم؟

یه فایل js که توش با استفاده از document.write یه embed رو لود می کنه و مثلاً یه آهنگ پشت زمینه پخش می کنه. ینی هرجا عبارت <script src=...> رو بذارم همونجا تو صفحه اون embed رو لود می کنه.

می خواستم اینو با استفاده از آژاکس لود کنم که الان هر کاری کردم با این کد نتونستم.

در واقع می خوام بدونم منظور از str چیه؟ ینی کل سورس صفحه م که با آژاکس لود می شه یا چیز دیگه؟

ببخشید اگه موفق نشدم خوب توضیح بدم.
 
آخرین ویرایش:
دوست عزیزم، من هم این مشکل رو داشتم و با کمک یکی از دوستان مشکل حل شد:
لینک انجمنی که من در موردش بحث کردم:
http://forum.majidonline.com/showthread.php?t=89996&page=3
همونجا دو تا لینک رو پیوست کردم، اولیش رو خودم یک فانکشن بنام ajax() نوشتم دومیش هم با استفاده از prototype هست.
ان شا الله کارت راه بیافته.
 

mamylo

New Member
دوست عزیزم، من هم این مشکل رو داشتم و با کمک یکی از دوستان مشکل حل شد:
لینک انجمنی که من در موردش بحث کردم:
http://forum.majidonline.com/showthread.php?t=89996&page=3
همونجا دو تا لینک رو پیوست کردم، اولیش رو خودم یک فانکشن بنام ajax() نوشتم دومیش هم با استفاده از prototype هست.
ان شا الله کارت راه بیافته.
ممنون دوست من.
البته خودم تونستم با دادن يه تغيير توش درستش کنم. شد اينجوري. درست بودن يا نبودنش از لحاظ فني به پاي اساتيد، ولي کار منو راه انداخت:

کد:
var jsSrc;
function doeval(js, src){
 if(js!=null){
 var sc = document.createElement('script');
 sc.type = 'text/javascript';
 document.getElementsByTagName('head')[0].appendChild(sc);
 if (src!=null) sc.src = src; 
sc.text = js;
 }
}

function getscript(str, src){
let_out=str;
    var reg = new RegExp( '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)', "img" );
    var i=1;  
    var s=1;  
    while ( s = reg.exec ( let_out ) ) {
    doeval(s[1], src);
    }
}

بايد تو پارامتر src آدرس فايل js رو بديم.
اما اينجوري يه مشکلي داره، اونم اينگه اگه مثلاً تو صفحه مقصدمون (هموني که لود ميشه) آمارگير باشه صفحه چند ثانيه اي هنگ مي کنه. اينو چطور رفع کنم؟
 

farik

Well-Known Member
با سلام..
دوست عزيز همونطور كه دوست عزيزم آقاي albusandharry تو صكدي كه نوشتن هست بايد از document.getElementBytagName('tag') اتفاده كنيد و با اون تگهاي script رو بگيريد و يكي يكي با تابع .eval(js code)
اوتها رو اجرا كنيد ..موفق باشيد در خدمتم..در مورد آمارگير هم ميتونيد هم ميتونيد يك مشخصه مانند lang رو به خصوصيتش اضافه كنيد و با استفاده از اون ، اون رو تشخيص داده و باز با استفاده از ايجكس اون رو بخونيد(البته ميتونيد با استفاده از اضافه كردن فرزند هم همونطور كه خودتون انجام دادين اين كار رو بكنيد ولي من امتحان نكردم...)
يا علي...TabOTabDesign
 

جدیدترین ارسال ها

بالا