我对jQuery&amp;网络开发一般。我正在尝试使用jQuery的“.getScript()”方法来加载一些用特定PHP文件编写的JavaScript脚本,但我想我错过了一些东西。 (注意:我注意到几个不同的问题,看起来有可能帮助我,但没有一个问题。如果有你知道的问题,请随时指出我的方向。谢谢。)< / p>
当我在Firebug中调试它时,它会点击“.getScript()”调用&amp;然后跳到下一行,似乎没有执行。
以下是我试图这样做的方法:
jQuery.getScript("relative/path/to/script/phpScript.php", function(){
alert("I'm HERE!");
setValues(); // JavaScript function that's written by phpScript.php
});
在这种情况下,JavaScript是由“phpScript.php”文件生成的,我的“alert()”永远不会运行,但我不确定为什么。任何想法?
我注意到我在另一个问题中遵循了一个建议,从而得到某种解析错误。我不知道如何解决这个问题。这是代码:
jQuery(document).ajaxError(function(event, request, settings){
alert('error loading: ' + request.status + "\nevent: "+ event);
for (var key in request){
if (request.hasOwnProperty(key)) {
alert(key + " -> " + request[key]);
}
}
});
BTW,我们正在使用“jQuery.noConflict();”运行jQuery。设置,这就是为什么我没有使用速记“$()”表示法。
以下是来自getScript()中GET调用的响应正文的片段:
<html><script type="text/javascript">
function setValues()
jQuery("#formname").text(window.formNAME);
jQuery("#Form_Path").text(window.formPATH);
jQuery("#Form_DB").text(window.formDB);
jQuery('#pertaining_to').text(window.pertainNAME);
jQuery("#Pertain_To_ID").text(window.pertainID);
jQuery("#Form_ID").text(window.formID);
jQuery("#Field_ID").text(window.fieldName);
}
</script>
<head>
提前致谢,
-Mark
答案 0 :(得分:4)
如果您正在加载JS脚本,请尝试将它们作为离散函数写入.js文件(例如:jsscript.js),然后使用此HTML行:
<script type='text/javascript' src='jsscript.js'></script>
然后,您可以在不使用.getScript()的情况下自行调用函数。 (当然,您需要在调用脚本之前放置上面的行。)
这似乎比你目前尝试的方式更清晰。
编辑:鉴于你目前的情况(即:一个生成JS脚本的PHP页面和一个调用脚本的PHP页面),也许你可以这样吗?
//PHP page that generates the scripts
function gen_script() {
//JS script generated into $script variable
return $script;
}
//PHP page that calls the scripts
include ('generate.php');
echo gen_script();
答案 1 :(得分:0)
我认为你可能只是将你的phpScript.php文件编辑为
function setValues(){
jQuery("#formname").text(window.formNAME);
jQuery("#Form_Path").text(window.formPATH);
//...
}
那没关系。