【问题标题】:Can I link an entire IFrame without linking its contents?我可以链接整个 IFrame 而不链接其内容吗?
【发布时间】:2018-09-17 15:54:06
【问题描述】:

所以我有一个 iFrame,它在我的 SharePoint 网站上显示一个四页 pdf。这个 iFrame 对于显示 PDF 非常方便,但我想这样做,以便单击框架内的任意位置将在浏览器中打开 PDF。我尝试使用和标签实施一些不同的策略,但没有找到任何东西来实现这个目标。我用于 iFrame 的代码如下。

欢迎提出任何建议。

<iframe width="500" height="550" src="URLtoPDF"></iframe>

【问题讨论】:

标签: pdf iframe sharepoint


【解决方案1】:

如果两个域相同(iframe 和它所在的位置),您可以在准备好的文档上使用下面的 jQuery 代码

<script  src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script type="text/javascript">
    $(document).ready(function () {
      $('iframe').load(function () {
        $(this).contents().find("body").on('click', function (event) {            
           window.open($(this).attr("src"), "_blank");
        });
      });
    });
</script>

在没有任何 js 文件引用的简单 javascript 的情况下使用下面的代码

<script type="text/javascript">
      window.onload = function () {
            var frame = document.getElementById('iframe');
            frame.onload = function () {
                var body = frame.contentWindow.document.body;
                body.onclick = function () {
                    var src = frame.getAttribute("src");
                    window.open(src, "_blank");
                };
            }
        }
 </script>

iframe 是 iframe 元素的 id

【讨论】:

  • 请原谅,我对 jQuery 并不精通......我会用它来代替我已经拥有的东西吗?如果没有,那么我将如何将它实现到我当前的代码中?
  • 将此代码放在您添加iframe代码的页面上,您需要参考jquery才能使其工作
  • 更新了我的答案,只需将此代码放在同一页面上的脚本编辑器或内容编辑器 Web 部件上
  • SharePoint 似乎忽略了 jQuery。您能推荐一种在 JavaScript 中执行此操作的方法吗?
猜你喜欢
  • 2021-12-07
  • 1970-01-01
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 2019-08-15
  • 1970-01-01
  • 1970-01-01
  • 2011-08-24
相关资源
最近更新 更多