以下是否可行。
我的答案如下:
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>
因为在成功函数中,'m传递响应,应该“响应”不能用于try1.js.反正我们可以将响应传递给js / html文件并使用吗?
答案 0 :(得分:0)
不,response
将不可用,除非您将response
分配给全局变量(并假设浏览器安全性允许您动态加载此类脚本)。我认为,如果你澄清更多关于你想要实现的目标和原因,那将会有所帮助。
另外,也许你只是为了格式化而做,但是文件try1.js里面不应该有脚本标签。
答案 1 :(得分:0)
今天我遇到了一个非常有趣的脚本,向我展示了如何从脚本标签中获取参数:
$.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);
这可能看起来很复杂,但研究一下,你会发现我可以帮助你解决你的特定问题