我想从外部源下载一些html,只获取id #lay_body_get
中的内容。此外部源还包含<script></script>
标记,但jQuery正在从响应中取消。有没有办法在脚本标签中获取包含javascript代码的html代码?
这是功能:
function ocmenu(url) {
$.ajax({
url: url,
dataType:"text"
}).done(function(resp) {
$('.new').html($('#lay_body_get',resp));
});
}
答案 0 :(得分:7)
请勿使用dataType:"text"
。使用"html"
或将其保留为自动。
“html”:以纯文本形式返回HTML;包含的脚本标记在插入DOM时进行评估。 “text”:纯文本字符串。
再往下在同一页面上:
如果指定了html,则在将HTML作为字符串返回之前,将执行检索到的数据中的任何嵌入式JavaScript。
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<div id="putResultHere">
</div>
<script>
$(function() {
$.ajax({
url: 'file2.html',
dataType:"html"
}).done(function(resp) {
$('#putResultHere').html($(resp));
});
});
</script>
</body>
</html>
<h1>Ajax done!</h1>
<script>
alert('script worked');
</script>
答案 1 :(得分:0)
$(resp).find('script').each(function(i,script){
eval($(script).text());
});
确保您信任外部文件..