如何解决读取html / js文件中的json响应
| 下面是可能的。 我在下面收到一个ajax响应: 的HTML<body>
<input type=\"text\"></input>
<div id=\"trydiv\"></div>
</body>
JS
$.ajax({
type: \"POST\",url: \"json.php\",data: \'val=\'+$(\'input\').val(),success: function(response){
$(\'#trydiv\').load(\"try1.js\");
}
});
json.php
<?php
echo json_encode($_POST[\'val\']);
?>
try1.js
<script type=\"text/javascript\">
$(function(){
alert(response);
});
</script>
由于在成功函数中,正在传递响应,因此“ response”对于try1.js不可用。无论如何,我们可以将响应传递到js / html文件并在其中使用吗?
解决方法
不会,除非您将
response
分配给全局变量(并且假设浏览器安全性允许您动态加载此类脚本),否则response
将不可用。我认为这对您有帮助,但是如果您进一步说明自己要达到的目标以及原因。
另外,也许您只是为了格式化而做的,但是try1.js文件中不应包含脚本标签。
, 今天,我遇到了一个非常有趣的脚本,向我展示了如何从script标签中获取参数:
$.ajax({
....
success: function(response){
$(\'#trydiv\').load(\"try1.js\");
var scr = document.createElement(\'script\');
scr.type = \'load.js?\'+escape(response);
document.getElementsByTagName(\'head\')[0].appendChild(scr);
}
});
现在在您的load.js中:
// get the parameters from the script tag
var scripts = document.getElementsByTagName(\'script\');
var data =\'\';
for (var i=0,l= scripts.length;i<l;i++){
if (scripts[i].src.indexOf(\'load.js\') != -1){
data = scripts[i].src.slice(scripts[i].src.indexOf(\'?\')+1);
}
}
// now you can do alert the data
alert(data);
这可能看起来很复杂,但请对其进行一些研究,您会发现我可以为您解决特定的问题
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。