提前感谢帮助
尝试为外部链接创建重定向页面
在这里,我需要从根目录中更改href
class="external"
(重新创建它),而不是创建点击事件以打开具有自定义href的窗口
<a class="external" href="http://google.com">GOOGLE</a>
看到这个
$('a.external').click(function (e) {
e.preventDefault();
var target = e.target || e.srcElement;
if ($(target).attr('target') == "_blank") {
window.open("http://"+redirectpage+"?url=" +$(target).attr('href') , "_blank");
} else {
window.location = "http://"+redirectpage +"?url="+ $(target).attr('href'));
}
})
如果您通过右键单击复制链接,则上面的示例 GOOGLE它会复制原始链接http:// google .com
但是 我想转换原始链接,当我点击打开此链接或当我复制结果=
http://example.com/redirect.html?url=http://google.com/
重定向页面我使用http:// example .com / redirect.html 包含这个
HTML
<a id="gotoexternal" href="">go to external</a>
JS
<script>
var query = window.location.search.substring(1);
query = query.replace("url=", "");
$('#gotoexternal').attr('href', query);
</script>
答案 0 :(得分:0)
您的window.location
行中有一个额外的右括号。
应该是
window.location = "http://"+redirectpage +"?url="+ $(target).attr('href');
答案 1 :(得分:0)
$('a.external').each(function () {
$(this).attr( 'href', "http://"+redirectpage +"?url="+ $(this).attr('href') );
$(this).removeAttr( 'target' ); //strip target _blank from links
});
这只是用重定向网址一次性替换url。它不需要onclick事件,也不需要搞乱目标或其他任何东西。除非有某种原因你想要保留你未提及的原始网址,否则这应该是实现你想要的最直接的方式。
答案 2 :(得分:0)
您可以使用attr(attributeName,function)
修改现有的href
$('a.external').attr('href',function(_, oldHref) {
return "http://" + redirectpage + "?url=" + oldHref;
});
target
应该已根据您的代码设置
您也可以在点击处理程序中执行此操作,以便用户在悬停链接时无法看到更改
$('a.external').click(function (e) {
this.href = "http://" + redirectpage + "?url=" + this.href;
});