从跨域文件禁用Javascript
我有一个html文件,打算加载XHR html文件。 这是我的密码:从跨域文件禁用Javascript,javascript,jquery,Javascript,Jquery,我有一个html文件,打算加载XHR html文件。 这是我的密码: <div id='some-id'></div> <div id='some-id-2'></div> <script type='text/javascript'> $('#some-id').load('some-url'); </script> 我的问题是外部html文件包含一些javascript代码,这些代码是在嵌入它之后执行的。我如何预防这个
<div id='some-id'></div>
<div id='some-id-2'></div>
<script type='text/javascript'>
$('#some-id').load('some-url');
</script>
我的问题是外部html文件包含一些javascript代码,这些代码是在嵌入它之后执行的。我如何预防这个问题?url是跨域的,我没有访问远程域服务器的权限可能不是最佳解决方案,但因为您无法控制返回的数据- 您只能加载部分HTML,例如,仅加载您感兴趣的元素:
$('#some-id').load('http://www.some-url.com/index.html div#elementId');
此外,如前所述,您可以排除脚本:
$('#some-id').load('http://www.some-url.com/index.html :not(script)');
或者,您可以在返回级别将其删除:
$.get('http://www.some-url.com/index.html', function(data) {
$(data).find('script').remove();
$('#some-id').html(data);
});
可能不是最好的解决方案,但因为您无法控制返回的数据- 您只能加载部分HTML,例如,仅加载您感兴趣的元素:
$('#some-id').load('http://www.some-url.com/index.html div#elementId');
此外,如前所述,您可以排除脚本:
$('#some-id').load('http://www.some-url.com/index.html :not(script)');
或者,您可以在返回级别将其删除:
$.get('http://www.some-url.com/index.html', function(data) {
$(data).find('script').remove();
$('#some-id').html(data);
});
使用ajax并通过$'some-id'[0]进行注入。innerHTML=而不是由内部调用的.htmlload@Samuel,来自某个url的内容是否具有单个顶级元素?如果是这种情况,您可以在URL之后指定一个与该元素匹配的选择器,加载将剥离脚本。加载外部文件是否有效?如果有效,您如何处理SOP?执行脚本有什么问题?Hamidi,你说的顶级元素是什么意思?Bergi,一切都很顺利。我只想从远程源禁用Javascript。请使用ajax并通过$'some-id'[0]进行注入。innerHTML=而不是由内部调用的.htmlload@Samuel,来自某个url的内容是否具有单个顶级元素?如果是这种情况,您可以在URL之后指定一个与该元素匹配的选择器,加载将剥离脚本。加载外部文件是否有效?如果有效,您如何处理SOP?执行脚本有什么问题?Hamidi,你说的顶级元素是什么意思?Bergi,一切都很顺利。我想做的只是从远程源禁用Javascript。没有用,因为在设置此命令之前已经执行了Javascript代码远程。如果它没有插入到DOM中,它不应该被执行-当我使用get方法时,尝试$.get方法仍然相同。没有用,因为在设置此命令之前已经执行了javascript代码远程。如果它没有被插入DOM,则不应该被执行-当我使用get方法时,尝试$.get方法仍然相同。