使用Javascript替换弹出页面上的页面链接以在主(父)窗口中打开

时间:2013-09-02 15:13:18

标签: javascript wordpress

我的广播电台网站有一个弹出播放器。该窗口包含指向我网站中其他各个页面的链接,其中一些页面是由Wordpress小部件动态创建的。

我希望链接在父窗口中打开,因为大多数内容不适合小弹出窗口。

我采取的方法是使用javascript重新编写链接作为target =“parent”。这适用于(从页脚)使用以下脚本。

<script>
  var aEls = document.getElementsByTagName('a');
  for (var i = 0, aEl; aEl = aEls[i]; i++) {
    aEl.href = aEl.href.replace('target="_self"','target="_parent"');

}  

      var imgEls = document.getElementsByTagName('img');
      for (var i = 0, imgEl; imgEl = imgEls[i]; i++) {
        imgEl.src = imgEl.src.replace('target="_self"','target="_parent"');

}
</script>

但是,这仅适用于页面上的静态链接,而不适用于通过我的滑块小部件或其他小部件生成的链接。

是否需要包含某些地方,或者在生成之后可以进行调整以查找和替换所有链接?

编辑:为了避免混淆,我会重申这个要求(我的尝试就是这样,一次尝试)。我需要重新编写弹出页面的所有链接,在主站点(父窗口)中打开。

Edit2:虽然我似乎能够替换target =“_ parent”,但它没有达到预期的效果。也许我需要以某种方式使用window.opener。有什么想法吗?

Edit3:This正常运行。我认为我的find / replace将不得不以某种方式围绕链接重建这个函数。

2 个答案:

答案 0 :(得分:0)

您无法从属性href替换属性目标。使用el.target并设置值

var aEls = document.getElementsByTagName('a');
for (var i = 0, aEl; aEl = aEls[i]; i++) {
aEl.target="_parent";

}  

答案 1 :(得分:0)

你可以使用它。

$('img').each(function() { 
   var OldSrc = $(this).attr("src");
   var newSrc = OldSrc.replace('target="_self"','target="_parent"');
   $(this).attr("src",newSrc);
});

这是短暂的解决方案。