gpt4 book ai didi

IE6 和 IE7 中的 JavaScript “confirm”

转载 作者:行者123 更新时间:2023-12-02 19:44:46 24 4
gpt4 key购买 nike

为什么此代码在 IE6 或 IE7 中不起作用?

$('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 中单击链接时,它们不会将用户定向到该链接,也不会提示确认对话框。它应该提示一个确认对话框,但由于某种原因,它没有。

最佳答案

我认为您并没有阻止 anchor (“a”)的默认操作。

你应该开始$('a').click( function( event ) {这样当你到达这里时:

if( urlIsExternal ) {

// This tells jQuery to NOT follow the hyperlink
event.preventDefault();

if( confirm( urlConfirmMessage ) ) {
window.open( urlClicked );
}

}

但是,真正缺少的是此代码需要在文档加载后运行。所以你只需要用

包装你的函数
$(document).ready(function(){
$('a').click( function( event ) {
/* your code */
}
});

无需调用 $(document).ready() ,JavaScript 在渲染文档正文之前运行,因此它找不到任何 <a>它可以附加点击事件的标签。

关于IE6 和 IE7 中的 JavaScript “confirm”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9984771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com