在 div 中加载外部内容并操作 dom
Posted
技术标签:
【中文标题】在 div 中加载外部内容并操作 dom【英文标题】:Load external content in div & manipulate dom 【发布时间】:2015-06-09 16:46:09 【问题描述】:我想要的是将外部内容(来自不同的域名)加载到 div 中并操作此外部加载内容的 dom。 例如,我加载了一个 div bbc.com,我希望能够选择此页面中的所有“a”标签链接。 这是我在jscribble 中完成的一个示例
$(document).ready(function()
$('#wrap').contents().find('iframe').mouseenter(function()
$('a').hide();
);
);
在这个 JScribble 中,我只是尝试使用 .hide() 函数使“a”标签做出反应,以查看是否找到了“标签”。但由于跨域安全,似乎没有找到它。
所以我不再确定 iframe 是解决方案。
还有其他方法可以 吗? (外部内容有不同的域名)
【问题讨论】:
【参考方案1】:不能使用跨域操作,你需要调用 iframe 内容到你的域名...
如果你的文件是html,那么你应该试试这个
$(文档).ready(函数() $(文档).ready(函数($) var tmp = $('#wrap iframe').contents().find('html').mouseenter(function() $('a').hide(); ); // 警报(tmp);用于调试 ); );当鼠标进入锚标记时,该标记将消失(隐藏)!鼠标退出时也可以这样做,您可以将其显示回来...
【讨论】:
它仍然不起作用....似乎它不起作用..这是我尝试过的东西:nathaliedupasquier.fr/Load_2/index.html【参考方案2】:由于same origin policy,您无法使用跨域 iframe 执行操作。您可以做的是获取 iframe 内容服务器端并将其作为来自您自己的域的服务。
这些链接可能对cors,phantom有帮助
【讨论】:
以上是关于在 div 中加载外部内容并操作 dom的主要内容,如果未能解决你的问题,请参考以下文章
Ajax 在 div 中加载页面内容,但在右键单击时保持“在新选项卡中打开”