我正在调用一个带有ajax的页面,它应该在返回之前运行一个javascript代码
例如:
differentPage.php
..code
<div id="awesomeDiv"></div>
<script>
$("#awesomeDiv").html("it is very awesome");
</script>
..code
现在在我的页面中,我们称之为“myPage.php”我为differentPage.php调用ajax并需要在awesomeDiv中获取html,如下所示:
myPage.php
$.ajax({
'url': 'differentPage.php',
'dataType': 'html',
'success': function(data, textStatus, jqXHR) {
myFunc(data);
}
});
function myFunc(data){
var htmlData = $($("<div>").html(data)[0]);
var awesomeDiv = htmlData.find("#awesomeDiv");
alert(awesomeDiv);
}
警告空字符串。
有没有办法让ajax调用等到所有客户端代码都结束?
答案 0 :(得分:-1)
这不是很安全,但这是一个解决方案。你应该:
所以,代码应该是近似的:
function myFunc(data){
var htmlData = $("<div>").html(data).appendTo('#container'),
awesomeDiv = $('#awesomeDiv', htmlData);
$('script', obj).each(function(script) {
eval(script.innerHTML);
});
alert(awesomeDiv);
}
注意:以这种方式传输脚本是不安全的!将脚本包含在HEAD中(使用标记SCRIPT)然后操作它们会更好。