0

我的广播电台网站有一个弹出播放器。该窗口具有指向我网站中其他各种页面的链接,其中一些是由 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:工作正常。我认为我的查找/替换将不得不以某种方式围绕链接重建此功能。

4

2 回答 2

0

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

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

}  
于 2013-09-02T15:28:26.190 回答
0

你可以使用这个。

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

这是一个简短的解决方案。

于 2013-09-02T15:34:17.967 回答