PDA

View Full Version : اجرا کردن کد جاوا اسکریپت توسط جاوا اسکریپت !!



shamsoft
سه شنبه 23 بهمن 1386, 15:45 عصر
با سلام
احتمالا عنوان تاپیک خیلی گنگ هست ولی من با مثال توضیح میدم.
مثلا کد زیر رو در نظر بگیرید. پس از اجرا شدن باید یه پیغام نشان داده بشه که نشان هم می دهد!

<html><head></head>
<body>
<DIV id="content"><script>alert('hello');</script></DIV>
</body></html>
حالا من می خوام این کار رو با فشردن یک دکمه انجام بدم:

<html><head>
<script type="text/javascript">
function test() {
document.getElementById('content').innerHTML='<script>alert("hello");</script>';
}
</script>
</head>
<body>
<input type="button" value="Click Me" onclick="test()">
<DIV id="content"></DIV>
</body></html>
ولی کد بالا Error داره و اجرا نمیشه.
اگه کسی راهی برای انجام این کار داره، ممنون میشم اگر کمک کنه.
البته توجه داشته باشید من نمی خوام با فشار دادن یه Button پیغام(Alert) رو نشون بدم. می خوام مثل کد اول، کد جاوا اسکریت درون تگ Div قرار بگیره و اجرا بشه.
چون من همچین کاری رو می خوام واسه Ajax انجام بدم که وقتی Response میده یه کد جاوا اسکریپت توی Response دارم که وقتی توی تگ Div قرار می گیره اجرا نمیشه.

shamsoft
سه شنبه 23 بهمن 1386, 23:34 عصر
ظاهرا؛ یا بهتر بگم قطعا راهی برای انجام این کار نیست! یعنی innerHTML ذاتا نمی تونه کدهای جاوا اسکریپت و حتی سی اس اس (<style type="text/css"></style>) رو اجرا کنه. البته یه جورایی میشه این کار رو انجام داد. خودتون اینجا (http://zeta-puppis.com/2007/05/27/javascript-script-execution-in-innerhtml-another-round/) رو ببینید :چشمک:

neopersia
چهارشنبه 24 بهمن 1386, 01:15 صبح
البته اگه بخواید از این روش برای متد alert استفاده کنید منطقی نیست ولی توصیه میکنم در مورد eval جستجو کنید شاید کمکتون کنه

shamsoft
چهارشنبه 24 بهمن 1386, 11:41 صبح
البته اگه بخواید از این روش برای متد alert استفاده کنید منطقی نیست
alert فقط یه مثال بود که منظورمو برسونم.

توصیه میکنم در مورد eval جستجو کنید شاید کمکتون کنه
مگه eval درون تگ script قرار نمی گیره ؟ پس اینم اجرا نمیشه :چشمک: