【问题标题】:Open Links in an iframe in a new tab在新标签页中打开 iframe 中的链接
【发布时间】:2019-03-04 17:18:19
【问题描述】:

我已将 excel 文件转换为 .htm 文件。 excel文件中有链接。 我已在我的网站中嵌入了 .htm 文件 这些链接应该在新标签页中打开,而不是在 iframe 中。

我该怎么做? target="_blank" 不起作用。

<iframe src="website.htm" style="border:none;" width="100%" height="300">
</iframe>

这也不起作用:

<script src="https://code.jquery.com/jquery-latest.js"></script>
<iframe src="website.htm" style="border:none;" width="100%" height="300">
</iframe>
<script>
$('iframe a').attr('target', '_blank');
</script>

【问题讨论】:

  • iframeElement.contentWindow.document 是来自包含 iframe 的页面的 JavaScript,用于访问 iframe 文档。照常编程。
  • @PHPglue 你想说什么?我该怎么做?
  • $('iframe').eq(0).contents() 将为您提供带有 jQ​​uery 的 iframe 文档。我认为 iframe 链接不会在除 iframe 窗口之外的任何地方打开,因此如果您想使用 iframe 设计,则必须以编程方式从父窗口执行此操作。
  • 你能描述一下,我该怎么做吗?
  • 在父页面上执行 jQuery 的方式相同。您必须至少了解 jQuery 才能使用它。我个人建议您将数据与 DOM (文档对象模型) 分开。换句话说,您应该只在服务器上有一个程序来解析您的 excel 工作表,并将其输出到 JSON,以便在您的 HTML 中使用。使用 AJAX 从服务器获取数据。很少使用 iframe。

标签: javascript html css excel


【解决方案1】:

你可以试试

<iframe src="website.htm" style="border:none;" target="_top" width="100%" height="300">
</iframe>

使用 jQuery:

$('iframe a').attr('target', '_blank');

【讨论】:

  • target="_parent" ??你试过了吗?
  • 使用 jQuery 也没有用。查看我在问题中的代码。
【解决方案2】:

尝试如下:

var linkList = [iframeElement].contentWindow.document.getElementsByTagName("a");
for (var i = 0; i < linkList.length; i++) {
    linkList[i].target = "_blank";
}

【讨论】:

  • iframe的src和父窗口不是同一个域?是关于跨域的问题,所以你必须修改iframe页面中的链接,并在链接中添加“target='_blank'”
  • 不行,iframe src和父窗口不一样
  • 好的,你可以编辑iframe的内页,没有别的办法,因为iframe跨越了当前页面的原点(对不起,我英文不好),你也可以搜索答案通过关键字:“iframe 跨域”
猜你喜欢
  • 2014-04-18
  • 1970-01-01
  • 1970-01-01
  • 2013-09-30
  • 2018-11-04
  • 1970-01-01
  • 2013-11-30
  • 1970-01-01
  • 2011-09-29
相关资源
最近更新 更多