爲什麼不在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