Javascript iframe(不同域)中的所有链接必须在新div中打开

Javascript iframe(不同域)中的所有链接必须在新div中打开,javascript,iframe,google-chrome-extension,target,Javascript,Iframe,Google Chrome Extension,Target,其思想是在iframe中加载一个网页,例如wikipedia.com,并且该网页的每个被点击的链接都必须创建一个包含链接内容的新div。 这就像你在冲浪,从一页到另一页,但你会把你看到的每一页都放在一页里。因此,在您的冲浪结束时,您将访问该页面的所有历史记录 我有一个原型,这是非常…。很奇怪,但它刺激了这件事。你可以。为了使这个原型能够正常工作,您只能单击黄色背景链接。为了实现这一点,我为iframe创建了name属性,并为链接创建了target属性 链接的目标与iframe的名称相同。例如:

其思想是在iframe中加载一个网页,例如wikipedia.com,并且该网页的每个被点击的链接都必须创建一个包含链接内容的新div。 这就像你在冲浪,从一页到另一页,但你会把你看到的每一页都放在一页里。因此,在您的冲浪结束时,您将访问该页面的所有历史记录

我有一个原型,这是非常…。很奇怪,但它刺激了这件事。你可以。为了使这个原型能够正常工作,您只能单击黄色背景链接。为了实现这一点,我为iframe创建了name属性,并为链接创建了target属性

链接的目标与iframe的名称相同。例如:

<a href="Hyperlien_Wikipedia.html" class="color" <strong>target="iframe_a"</strong> title="Hyperlien">hyperliens</a>

<div id="wrap2">
    <iframe class="frame"  frameborder="1" <strong>name="iframe_a"</strong>  src=""  >
    </iframe>
</div>
当然,这个原型只是刺激它的外观,但它不是真正的制作方法

以下是所有问题:

1我必须手动将«target»属性添加到所有链接中,这是不可能的,因为我的想法是加载来自不同域名的任何网站。像维基百科,bbc等等。此外,在这个原型中,我保存了wikipedia页面,并将其上传,使其能够工作,从而保存其本地内容。这对我的案子不好

2我知道同源策略不允许不同域名的父页面和子iframe之间的通信。根据我的说法,如果我想设置所有标记链接在一个新的div中显示它们的内容,我必须与子iframe通信

所以我想知道我应该怎么做…我需要最简单的方法,因为我对html/css没问题,但我对js是新手…。我想知道如果我使用chrome扩展,比如用background.js api注入js,是否会更容易。我也听说了,为了与iframe通信,即使他们有不同的域名。但我不知道这个解决方案是否适合这种情况


我在等待您的回答:

当内容发生变化时,您可以使用jQuery进行监听。如果是这样,您将阻止默认设置,即不更改内容并创建新的iframe/div

$("#iframeid").load(function(event){
  //prevent normale action
  event.preventDefault();

  //create new div/iframe
  [...]
}
此代码未经测试,并且在初始加载iframe时也会被激发。也许你可以在那里找到一些解决办法,但我想你明白了

资料来源:

,


编辑:添加解释

如果我理解,默认设置是能够侦听链接是否被点击他们理解事件的类型,然后如果链接被点击,它将创建一个新的div。但是它也可以获取链接的url吗?我不确定,但可能我不太明白。参考我的资料来源的第一个链接,您可以使用this.locations.href。如果你向下滚动,你会看到一个答案,这似乎非常适合你的问题