为什么不在IE6或IE7中使用此代码?在IE6和IE7中使用Javascript“确认”
$('a').click(
function()
{
var urlIsExternal = true;
var urlMedicareDir = '/medicare/';
var urlMedicareHost = 'health.healthcare.com';
var urlMedicare = 'https://' + urlMedicareHost + urlMedicareDir;
var urlAppsHost = 'apps.healthcare.com';
var urlCurrent = String(window.location);
var urlCurrentPrefix = urlCurrent.substring(0, urlMedicare.length);
var urlCurrentURL = $.url(urlCurrent);
var urlClicked = $(this).attr('href');
var urlClickedURL = $.url($(this).attr('href'));
var urlHost = urlClickedURL.attr('host');
if(!urlHost.length)
{
urlHost = urlCurrentURL.attr('host');
}
var urlConfirmMessage = 'You are now leaving the Medicare website.';
if(urlCurrentPrefix == urlMedicare)
{
if(urlClicked.substring(0, 1) == '/') // starts with slash
{
if(urlClicked.substring(0, urlMedicareDir.length) == urlMedicareDir)
{
urlIsExternal = false;
}
}
if(urlClicked.substring(0, urlMedicare.length) == urlMedicare)
{
urlIsExternal = false;
}
if (
urlClicked.substring(0, 1) != '/' &&
urlClicked.substring(0, 4) != 'http' &&
urlClicked.substring(0, 4) != 'file'
)
{
urlIsExternal = false;
}
if(urlAppsHost == urlHost)
{
urlIsExternal = false;
}
if(urlClicked.substring(urlClicked.length-4) == '.pdf')
{
urlIsExternal = false;
}
}
else
{
urlIsExternal = false;
}
if(urlIsExternal)
{
if(confirm(urlConfirmMessage))
{
window.open(urlClicked);
return false;
}
else
{
return false;
}
}
else
{
return true;
}
}
);
出于某种原因,当链接被点击了IE6还是IE7,他们不会将用户引导到的链接,并没有提示确认对话框。它应该提示确认对话框,但由于某种原因,它不是。
你在错误控制台看到任何错误? – jfriend00 2012-04-02 22:35:52
代码提示:不要'String(window.location)'而是'window.location.href'。 – Ryan 2012-04-02 22:37:35
如果您可以将问题缩小到可能的最小范围,它将帮助所有人(包括您!)。尝试在代码中的关键点插入一些有意义的'alert()'调用,以确保它们得到执行。 – aaaidan 2012-04-02 22:46:44