标签:jquery javascript
我想将一个页面(带有js,css)加载到同一文档中的DIV中,加载页面中的javascript不能应用于父页面内容.是否可以在加载的页面上设置类似默认上下文的内容?请看下面的基本示例
父页面:
<h1>normal</h1>
<span class="externalpage">data</span>
<script>
$(document).ready(function () {
$.ajax({
url: "/ajax/Index",
success: function (data) {
$(".externalpage").html(data);
}
});
})
</script>
/ ajax / Index“subpage” – 我不会改变此页面的内容.
<h1>ajax</h1>
<script>
$(document).ready(function () {
$("h1").text("xxxxxxxxxxxxx");
})
</script>
解决方法:
从您的注释中,您希望加载的脚本在某种“部分”文档上下文中执行,仅限于您的externalpage元素的内容(即只有加载的< h1>元素必须更改,而不是< div>之外的元素).
这可以通过暂时覆盖$.find()(而不是$.fn.find(),这不是同一件事)来实现,并且如果未指定或等于文档本身,则替换context参数中的externalpage元素:
$(document).ready(function () {
$.ajax({
url: "/ajax/Index",
success: function(data) {
var $root = $(".externalpage");
var realFind = $.find;
$.find = function(query, context, extra, seed) {
return realFind.apply(this, [
query,
context && context !== document ? context : $root[0],
extra,
seed
]);
};
$root.html(data);
$.find = realFind;
}
});
})
jsFiddle有一个echo服务,我可以用来测试这个解决方案.你可以看到结果here.
标签:jquery,javascript 来源: https://codeday.me/bug/20190613/1236197.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。