将弹出页面上的页面链接替换为要在主(父)窗口中打开的Javascript

Replace Page Links on Popup Page With Javascript to Open in Main (Parent) Window

本文关键字:窗口 Javascript 链接 替换      更新时间:2023-09-26

我的电台网站有一个弹出播放器。该窗口有指向我的网站中其他各种页面的链接,其中一些页面是由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>

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

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

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

第2版:虽然我似乎可以替换target="_parent",但它并没有达到预期的效果。也许我需要用开窗器。有什么想法吗?

第三版:这是正确的。我认为我的查找/替换将不得不以某种方式围绕链接重建此功能。

您可以使用它。

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

这是短解。

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

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