这里我试图使用window.open
在新窗口中打开一个URL我有一个带有一些URL的锚标签列表,当我点击这些锚标签时,javascript应该得到href =“”值并将值传递给javascript函数。
以下是我所做的代码:
<html>
<head>
</head>
<script>
var a;
function popitup(a)
{
window.open(a,
'open_window',
'menubar=no, toolbar=no, location=no, directories=no, status=no, scrollbars=no, resizable=no, dependent, width=800, height=620, left=0, top=0')
}
</script>
<body>
<form name="popup" >
<a href="http://www.yahoo.com" onclick="popitup(this.value)">yahoo</a>
<a href="http://www.google.com" onclick="popitup(this.value)">Google</a>
<a href="http://www.msn.com" onclick="popitup(this.value)">MSN</a>
</form>
</body>
</html>
当我点击雅虎时,www.yahoo.com应该会在新窗口中打开。同样所有
但现在当我点击这些链接时,我在新窗口中收到错误“找不到服务器”。
我该如何解决这个问题?
答案 0 :(得分:10)
您有以下问题
如果您没有弹出窗口阻止程序并且没有“在标签中打开新窗口”,那么此代码可能在您的浏览器中有效。如果有弹出窗口阻止程序,则链接仍然有效
<html>
<head>
</head>
<script>
function popitup(link) {
var w = window.open(link.href,
link.target||"_blank",
'menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=no,dependent,width=800,height=620,left=0,top=0');
return w?false:true; // allow the link to work if popup is blocked
}
</script>
<body>
<a href="http://www.yahoo.com" onclick="return popitup(this)">yahoo</a>
<a href="http://www.google.com" onclick="return popitup(this)">Google</a>
<a href="http://www.msn.com" onclick="return popitup(this)" target="MSN">MSN</a>
</body>
</html>
我会使用这些参数
'resizable,width=800,height=620,left=0,top=0'
答案 1 :(得分:2)
您this.href
处理程序中的this.value
代替onclick
。锚标记的href
属性不是它的值。
答案 2 :(得分:1)
<html>
<head>
</head>
<script>
var a;
function popitup(a)
{
window.open(a,
'open_window',
'menubar=no, toolbar=no, location=no, directories=no, status=no, scrollbars=no, resizable=no, dependent, width=800, height=620, left=0, top=0')
}
</script>
<body>
<form name="popup" >
<a href="http://www.yahoo.com" onclick="popitup(this.href)">yahoo</a>
<a href="http://www.google.com" onclick="popitup(this.href))">Google</a>
<a href="http://www.msn.com" onclick="popitup(this.href))">MSN</a>
</form>
</body>
</html>
答案 3 :(得分:0)
基于mplungjan解决方案的ES6 Javascript最新更新
document.addEventListener("click", navigateTo, false);
function navigateTo(event){
if (event.target.matches('a')) {
window.open(event.target.href,"_blank",'menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=yes,dependent,width=800,height=620,left=0,top=0');
}
event.preventDefault();
return false;
}
<html>
<head>
</head>
<body>
you need run this locale to check Code Snippet not allow Popups<br>
<a href="http://www.yahoo.com">yahoo</a>
<a href="http://www.google.com">Google</a>
<a href="http://www.msn.com">MSN</a>
</body>
</html>