繁体   English   中英

在来自其他域的iframe中运行Javascript

[英]Running Javascript in an iframe from a different domain

我正在使用来自其他公司的iframe来显示文档列表的网站。 这些文档在许多选项卡(“全部,演示文稿,报告”等)下分页。 如果我使用此元素作为示例:

<iframe id="frame" src="www.different-domain.com"></iframe>

...有没有办法在页面加载时打开特定标签? 所以,如果我想打开一个加载了“演示文稿”的页面,而不是“全部”(默认),我可以使用Javascript / jQuery来完成这个吗?

使用Javascript里面的标签生成所有项目的列表,如下所示:

<a href="javascript:loadPresentationData()">Presentations</a>

我不能简单地运行这个:

document.getElementById('frame').contentWindow.loadPresentationData();

...因为我将获得'权限被拒绝访问属性'loadPresentationData'。

如果我在新的浏览器选项卡中打开iframe src,转到控制台,然后输入'loadPresentationData();',它可以很好地工作!

有没有其他方法我可以让页面加载时打开选项卡,而不必联系框架的开发人员(这应该已经完成​​)。

如果我确实需要联系他们,我还需要他们做什么,以便我可以在页面加载时打开标签?

非常感谢。

您可以在iframe中操纵标签的唯一方法是通过网址恕我直言。 这取决于他们(第三方)如何实施标签。 例如,在JQuery UI中 ,您可以访问带有哈希的选项卡,例如

www.differentdomain.com/#tab-3

请注意,为了进一步调查,我们需要了解更多细节(例如真实域)

有两种方法可以告诉iframe中的文档做什么,也不能单方面完成。

正如@stove所提到的,最简单的方法(对于像制表符这样的结构性东西)就是使用带有哈希的URL; 另一个域上的应用程序只需要支持它们。

另一种更灵活的方式是使用跨文档消息传递 (你会在那里找到一个非常相关的例子)。 为了实现这一点,另一个域上的应用程序开发人员必须在他们一边编写一个消息处理程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM