我的广播电台网站有一个弹出播放器。该窗口包含指向我网站中其他各个页面的链接,其中一些页面是由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将不得不以某种方式围绕链接重建这个函数。
答案 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);
});
这是短暂的解决方案。