ارجو مناقشة فكرة ارسال شيفرة javascript ضمن الخاصية responseText حيث انه من المعلوم اننا نستطيع ارجاع شيفرة javascript من المخدم ضمن الخاصية responseText بسبب ان هذه العبارة مكتوبة بشكل نصي
ومن المعلوم اننا ننفذ شيفرة javascript باستخدام المنهج eval
ولكن مشكلتي انني قمت باستخدام المنهج eval ولم يتم تنفيذ المطلوب ويعطيني خطأ في تركيب العبارة
كود PHP:
if(Result[ eval(Result[1]);1])
وهي الاكواد التي قمت بكتابتها والملفات في المرفقات
File index.html
كود PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Test Ajax </TITLE>
<script language=javascript>
//============
function createRequest() {
var request = null;
try {
request = new XMLHttpRequest();
}
catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (failed) {
request = null;
}
}
}
return request;
}
//============
var request_call_alert = createRequest();
function call_alert(){
url = "index.php";
request_call_alert.open("GET", url, true);
request_call_alert.onreadystatechange = call_alert2;
request_call_alert.send(null);
}
function call_alert2(){
if (request_call_alert.readyState == 4) {
if (request_call_alert.status == 200) {
var Result = request_call_alert.responseText.split("||javascript||");
document.getElementById("object").innerHTML = Result[0];
//alert('How ');
if(Result[1]) eval(Result[1]);
}
}
}
</script>
</HEAD>
<BODY>
<form>
<div id=object></div>
<input type="button" value="Call Ajax Alert" onClick="call_alert();">
</form>
</BODY>
</HTML>
وهي صفحة الاندكس
index.php
كود PHP:
<?
print "<b>Javascript Alert</b>";
print " ||javascript|| <script language=javascript> alert('How to make this alert works?')</script>";
?>
As you can see responseText will return the HTML code
كود PHP:
<b>Javascript Alert</b><script language=javascript>alert('How to make this alert works?')</script>
عندما اضغط على Call Ajax Alert تظهر الكتابة ولا تظهر الرسالة المكتوبة بالجافا سكربت
انا واثق انو المشكلة هون بس كيف الحل؟؟؟؟
if(Result[1]) eval(Result[1]);