弹出窗口在一个浏览器上工作,但在另一个浏览器上不工作
Popup working on one browser but not another
为什么弹出窗口可以在一个浏览器上工作(在 firefox、firefox 开发者版上工作)而不在另一个浏览器上工作(不能在 Internet explorer 上工作,部分在 Chrome 上工作)?在某些情况下,弹出窗口可以在浏览器上的网站的某些页面上工作,但转到网站上的另一个页面时,相同的弹出窗口将不起作用。弹出窗口在页脚
<a href="#" onclick="PopupCenter('/terms_conditions.aspx','','550','700')">Terms
& Conditions</a>
有什么想法吗?
编辑弹出功能:
<div class="footerTwoBox">
<ul class="footTwoLinks" style="width: 500px; float: left;">
<li><a href="/voucher">Your Voucher</a></li>
<li><a href="#" onclick="PopupCenter('/privacy_policy.aspx','','550','700')">Privacy
Policy</a></li>
<li><a href="<%=rootUrl %>/customer-care">Contact Us</a></li>
<li><a href="/press-room">Press Room</a></li>
<li><a href="#" onclick="PopupCenter('/terms_conditions.aspx','','550','700')">Terms
& Conditions</a></li>
<li><a href="/partners">Partners</a></li>
<li><a href="/blog">Blog</a></li>
<li><a href="/careers">Careers</a></li>
<li><a href="/customer-care/faq" target="_blank">FAQs</a></li>
</ul>
当您点击弹出窗口时,它只会将您带到屏幕顶部 - 没有弹出窗口。如果我转到 firefox - 我会在屏幕中间看到弹出窗口...这一定是某种浏览器问题,但我无法识别它。
弹出功能
function PopupCenter(pageURL, title, w, h) {
//alert(w + " " + h);
var left = (screen.width / 2) - (w / 2);
var top = (screen.height / 2) - (h / 2);
var targetWin = window.open(pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
}
在您的 onclick
处理程序中 return false
是个好习惯。 link 通常指向您希望它显示的页面,同时在事件处理程序中调用弹出脚本。当您在函数中 return false
时,您会阻止浏览器遵循 link.
这可能会也可能不会影响浏览器的行为,具体取决于您使用的软件。这个主题有一篇很好的文章 here,涵盖了大部分陷阱。
请尝试以下代码:
function PopupCenter(pageURL, title, w, h) {
left = (screen.width / 2) - (w / 2);
top = (screen.height / 2) - (h / 2);
targetWin = window.open(pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
if (window.focus) {
targetWin.focus();
}
return false;
}
然后你可以这样调用它(注意附加的 return
关键字):
<a href="#" onclick="return PopupCenter('terms_conditions.aspx', '', '550', '700')">Terms & Conditions</a>
完成演示:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Popup Demo</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<script type="text/javascript">
<!--
function PopupCenter(pageURL, title, w, h) {
left = (screen.width / 2) - (w / 2);
top = (screen.height / 2) - (h / 2);
targetWin = window.open(pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
if (window.focus) {
targetWin.focus();
}
return false;
}
// -->
</script>
</head>
<body>
<div>
<a href="#" onclick="return PopupCenter('terms_conditions.aspx', '', '550', '700')">Terms & Conditions</a>
</div>
</body>
</html>
为什么弹出窗口可以在一个浏览器上工作(在 firefox、firefox 开发者版上工作)而不在另一个浏览器上工作(不能在 Internet explorer 上工作,部分在 Chrome 上工作)?在某些情况下,弹出窗口可以在浏览器上的网站的某些页面上工作,但转到网站上的另一个页面时,相同的弹出窗口将不起作用。弹出窗口在页脚
<a href="#" onclick="PopupCenter('/terms_conditions.aspx','','550','700')">Terms
& Conditions</a>
有什么想法吗?
编辑弹出功能:
<div class="footerTwoBox">
<ul class="footTwoLinks" style="width: 500px; float: left;">
<li><a href="/voucher">Your Voucher</a></li>
<li><a href="#" onclick="PopupCenter('/privacy_policy.aspx','','550','700')">Privacy
Policy</a></li>
<li><a href="<%=rootUrl %>/customer-care">Contact Us</a></li>
<li><a href="/press-room">Press Room</a></li>
<li><a href="#" onclick="PopupCenter('/terms_conditions.aspx','','550','700')">Terms
& Conditions</a></li>
<li><a href="/partners">Partners</a></li>
<li><a href="/blog">Blog</a></li>
<li><a href="/careers">Careers</a></li>
<li><a href="/customer-care/faq" target="_blank">FAQs</a></li>
</ul>
当您点击弹出窗口时,它只会将您带到屏幕顶部 - 没有弹出窗口。如果我转到 firefox - 我会在屏幕中间看到弹出窗口...这一定是某种浏览器问题,但我无法识别它。
弹出功能
function PopupCenter(pageURL, title, w, h) {
//alert(w + " " + h);
var left = (screen.width / 2) - (w / 2);
var top = (screen.height / 2) - (h / 2);
var targetWin = window.open(pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
}
在您的 onclick
处理程序中 return false
是个好习惯。 link 通常指向您希望它显示的页面,同时在事件处理程序中调用弹出脚本。当您在函数中 return false
时,您会阻止浏览器遵循 link.
这可能会也可能不会影响浏览器的行为,具体取决于您使用的软件。这个主题有一篇很好的文章 here,涵盖了大部分陷阱。
请尝试以下代码:
function PopupCenter(pageURL, title, w, h) { left = (screen.width / 2) - (w / 2); top = (screen.height / 2) - (h / 2); targetWin = window.open(pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left); if (window.focus) { targetWin.focus(); } return false; }
然后你可以这样调用它(注意附加的 return
关键字):
<a href="#" onclick="return PopupCenter('terms_conditions.aspx', '', '550', '700')">Terms & Conditions</a>
完成演示:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Popup Demo</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<script type="text/javascript">
<!--
function PopupCenter(pageURL, title, w, h) {
left = (screen.width / 2) - (w / 2);
top = (screen.height / 2) - (h / 2);
targetWin = window.open(pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
if (window.focus) {
targetWin.focus();
}
return false;
}
// -->
</script>
</head>
<body>
<div>
<a href="#" onclick="return PopupCenter('terms_conditions.aspx', '', '550', '700')">Terms & Conditions</a>
</div>
</body>
</html>