Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Javascript替换弹出页面上的页面链接,以便在主(父)窗口中打开_Javascript_Wordpress - Fatal编程技术网

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

用Javascript替换弹出页面上的页面链接,以便在主(父)窗口中打开,javascript,wordpress,Javascript,Wordpress,我有一个弹出播放器为我的电台网站。该窗口具有指向我的站点中各种其他页面的链接,其中一些页面是由Wordpress小部件动态创建的 我希望链接在父窗口中打开,因为大多数内容不适合小的弹出窗口 我采用的方法是使用javascript将链接重新编写为target=“parent”。这(从页脚)与以下脚本一起工作 <script> var aEls = document.getElementsByTagName('a'); for (var i = 0, aEl; aEl = aEl

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

var aEls=document.getElementsByTagName('a');
for(变量i=0,aEl;aEl=aEls[i];i++){
aEl.href=aEl.href.replace('target=“\u self”','target=“\u parent””);
}  
var imgEls=document.getElementsByTagName('img');
对于(变量i=0,imgEl;imgEl=imgEls[i];i++){
imgEl.src=imgEl.src.replace('target=“\u self”','target=“\u parent””);
}
但是,这只适用于页面上的静态链接,而不适用于通过我的滑块小部件或其他小部件生成的链接

是否有一些地方,这需要包括在内,或调整能够找到并更换所有链接后,已经生成

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

Edit2:虽然我似乎能够替换target=“\u parent”,但没有达到预期效果。也许我需要用点什么。有什么想法吗


Edit3:工作正常。我认为我的查找/替换将不得不以某种方式围绕链接重建此函数。

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

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

}  
你可以用这个

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

这是一个简短的解决方案

我无法想象这对任何链接都有效,
href!==target
,或者您有非常奇怪的
href
值……您能详细说明一下吗?我的测试工作是将值从www.mysite.com交换到www.mysite2.com。你是说即使它起作用,我也不会在父窗口中打开链接吗?这一行:
aEl.href=aEl.href.replace('target=“\u self”“,'target=“\u parent”“)没有意义…你能详细说明一下吗?同一行
aEl.href=aEl.href.replace('www.test.com','www.test2.com')工作正常。嗯。。。url应在
src
href
中查找,
href
不包含文本
目标=…
,除非它位于搜索字符串中?你的意思是:
aEl.target=aEl.target.replace(/\u self/,“\u parent”)?我不明白那个解决方案。它似乎只是删除了
target=“self”
这只是一个示例。您可以将其转换为:var newSrc=OldSrc.replace('target=“self”','target=“\u self”')@编辑:对不起,我写了“重命名”。那应该是“替换”。嗨,谢谢你的帮助。我很想知道你补充了什么。你明白我上面的要求吗?我需要找到我弹出页面上的所有链接,并将它们设置为在父级中打开。据我所知,您想打开一个弹出窗口并替换所有指向父级的链接吗?像这样?如果你看到我在上面的编辑,\u parent不起作用。奇怪的是,blank确实在父窗口中打开。但在一个新的标签(显然)。不幸的是_parent会在弹出窗口中打开。我需要使用函数之类的东西。看到第一个解决方案了吗