在 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的主要内容,如果未能解决你的问题,请参考以下文章

Jquery load() 不会在 div 中加载脚本标签

在缓存中加载 Div 背景图像 [重复]

Ajax 在 div 中加载页面内容,但在右键单击时保持“在新选项卡中打开”

jq load()方法中加载文件中元素事件绑定失效的问题

如何在 div 中加载外部 Angular 应用程序? [关闭]

图像无法在带有 DOM 的 IE 中加载:控制台中出现 7009 错误(无法解码)