【问题标题】:Use iframe as a link?使用 iframe 作为链接?
【发布时间】:2011-03-20 01:49:45
【问题描述】:

我正在使用 iframe,并在 iframe 中加载动态图像。我想将该图像用作相应文章的链接。其实这是一个新闻网站。

我已经用过很多东西,比如:

<a href="whatever.."><iframe src="dynamic url"></iframe></a>

适用于 IE,但不适用于 safari 和 FF。

一些推文,例如

div.iframe-link {
    position: relative;
}
a.iframe-link1 {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

代码:

<div class="iframe-link">
    <iframe src="file" width="90px" height="60px" frameborder="0" scrolling="no"
     marginheight="0" marginwidth="0" allowtransparency="true" noscaling="true">
    </iframe>
    <a href="url" target="_top" class="iframe-link1"></a>
</div>

在 FF 和 Safari 中工作,而不是在 IE7、8 中。

所以任何人都可以建议做什么..

任何帮助将不胜感激。


Iframe 正在加载图片的动态地址,例如::::

<div class="news_img01">
    <div onclick="window.open('URL','_self')" style="cursor: pointer;"><br>
        <iframe scrolling="no" height="60px" frameborder="0" width="90px" noscaling="true" allowtransparency="true" marginwidth="0" marginheight="0" src="thumbnails/1188.gif">
        </iframe>
    </div>
</div>

所以我不能在里面添加标签,但里面已经包装了标签。它适用于 IE,但不适用于 FF、Safari 等其他用户。

【问题讨论】:

标签: html


【解决方案1】:

您可以创建叠加层以使 iframe 上方的区域可点击。这对我有用。

<div style="position:relative;">
<iframe src="somepage.html" width="500" height="500" />
<a href="redirect.html" style="position:absolute; top:0; left:0; display:inline-block; width:500px; height:500px; z-index:5;"></a>
</div>

我在这里从这个线程中找到了这段代码 sn-p: https://forums.digitalpoint.com/threads/how-do-i-make-this-iframe-clickable.2320741/

【讨论】:

  • 遇到了一个问题,即加载内容的唯一方法是通过 iframe... 这解决了使 iframe 表现得像链接的问题。一个讨厌的 hack - 但一个非常好的 :) 谢谢!
【解决方案2】:

根据您之前的 cmets,您使用 iframe 将未知大小的图像裁剪为 60 x 90 像素的框。为此,请在a 标签上使用overflow:hidden css 属性,该属性会切掉任何不适合边框框的内容。

<div class="news_img01">
    <a href="URL"
       style="display: block; width:90px; height:60px; overflow:hidden;">
        <img src="thumbnails/1188.gif" />
    </a>
</div>

【讨论】:

    【解决方案3】:

    为什么不将&lt;iframe&gt; 包含在&lt;div&gt; 中,并在包含&lt;div&gt; 上添加onClick 事件以将用户导航到所需的页面?

    <div onClick=""> <!-- Or just bind 'click' event with a handler function -->
      <iframe ...></iframe>
    </div>
    

    通过添加以下 css 规则,它就像 iframe 是可点击的链接一样工作。

    div {
      cursor: pointer
    }
    
    iframe {
      pointer-events: none; // This is needed to make sure the iframe is not interactive
    }
    

    【讨论】:

      【解决方案4】:

      如果 iframe 正在加载 HTML 页面,只需将 &lt;a&gt; 标记放在该页面的源代码中即可。

      如果只是加载图片,为什么不使用&lt;img&gt;标签?

      【讨论】:

      • 但我无法更改该页面...因为这是其他网站发送的图片...我只是想让此图片可点击...
      • 如果其他网站只是提供图片,为什么不在img的src属性中使用呢?
      • 图片是动态大小的。所以我只需要显示左上角 90X60 大小的图片。其余部分应自动切断。这就是我使用 iframe 不扭曲图像的其余部分。我需要一小部分但清晰的部分。谢谢回复
      • @user400210 - 然后你可以使用内联 CSS:给你的 &lt;a&gt; 一个 display:block 属性,width:90px;height:60px; 和一个指向另一个站点的 background-image
      • 在不使用背景图像的情况下查看我的更新答案以获取类似方法。
      【解决方案5】:

      我建议使用 jQuery 选择该 iframe 中的图像元素,并用 &lt;a&gt; 标记将其包裹起来,以便它可以点击。

      我相信可以将 onHTMLReady 侦听器附加到 iframe 内的文档。然后等待 iframe 加载,然后让图片可点击

      $(frames[0].document).ready(function(){ /*find and wrap with a-tag goes here*/ });
      

      【讨论】:

      • 我是 Jquery 的新手。你能详细说明一下吗?
      【解决方案6】:

      我有同样的问题,我用这段代码解决了它:

      div.iframe-link {
      position: relative;
      float: left;
      width: 960px;
      height: 30px;
      }
      a.iframe-link {
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      background-color: #ffffff;
      opacity: 0.1;
      filter:Alpha(opacity=10);
      }
      

      对我来说,它也适用于所有浏览器和 IE8。 希望对你有帮助:)

      【讨论】:

        【解决方案7】:

        我遇到了这样的问题并通过这个解决了:

        a.iframe-link1 {
            position:absolute;
            top:0;
            left:0;
            display:inline-block;
            width:90px;
            height:60px;
            z-index:5;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-09-01
          • 2016-03-28
          • 1970-01-01
          • 2015-10-02
          • 1970-01-01
          • 1970-01-01
          • 2022-12-06
          • 2015-07-22
          相关资源
          最近更新 更多