【问题标题】:Create link in iFrame在 iFrame 中创建链接
【发布时间】:2019-06-07 13:15:20
【问题描述】:

我需要将 iFrame 中元素的文本更改为链接,并使用不同的显示文本。我无权访问 HTML。

在下面显示 ThisIsAWebsiteURL.com 的地方,我需要它作为指向该网站的链接,并将文本更改为“单击此处”

这可能吗?

<div class="classes" data-field="datafieldID">
    <div class="c-editor">
        <div class="c-content"> **ThisIsAWebsiteURL.com**
        </div>
    </div>
    <div class="c-validation" aria-hidden="true">
    </div>
</div>

【问题讨论】:

  • 您是否在iFrame 上加载外部网址?

标签: javascript css iframe


【解决方案1】:

如果您在 iFrame 中加载外部 URL,则无法操作或访问该页面的内容。

但是,如果加载的 url 来自相同的来源/域名,您可以使用 @TheUnKnown 提供的示例代码来实现这一点。

浏览器出于安全原因限制对外部 url 页面的访问,否则黑客可能会窃取您的数据或操纵它们。

【讨论】:

    【解决方案2】:

    一种可能的方法是存储该文本并在 iframe 加载后附加 &lt;a href&gt;

    $(document).ready(function(){
     $('#iframe').ready(function(){
        var link = $('.c-content').text();
        var url = ''+link+'';
        $('div').html('<a href="'+url+'">'+"Click Here"+'</a>');
    });
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <div class="classes" data-field="datafieldID">
        <iframe>
    
        <div class="c-editor">
            <div class="c-content">**ThisIsAWebsiteURL.com**
            </div>
        </div>
        </iframe>
        <div class="c-validation" aria-hidden="true">
        </div>
    </div>

    【讨论】:

    • 答案是没有用的原因,反正你不能操纵 iframe 的内容
    • 是的,您可以在 iframe 加载后。有了可用的 DOM 后,如果您知道要更改的 div 的 id/class,则可以使用 jQuery 更改 DOM。我已经更新了我的答案。
    • 好吧,@Kevin Wasie 说他无权访问 iframe html,我假设他正在加载外部 url,所以 iframe 的内容没有在根 html 上定义, 意味着无法操纵该内容。
    • 即使你之前没有访问过 iframe html,当你加载 iframe 时,它​​显然会从链接中加载 html,之后你仍然可以访问它。
    • 这个例子有效,因为根页面和 iframe 页面上的域名是相同的,看看这个例子jsfiddle.net/b2kmrqt4 在 iframe 上加载了一个外部 url,它确实不工作:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多