Javascript';s默认事件预防不起作用

Javascript';s默认事件预防不起作用,javascript,dom-events,preventdefault,Javascript,Dom Events,Preventdefault,当用户的浏览器启用Javascript时,我试图将“我的个人资料”菜单链接重定向到自定义url。我已经编写了一个自定义url创建动态函数getNewURL(),连接工作正常。问题是,即使启用了Javascript(在我的Chrome上),href中的默认页面也会加载,尽管有所有默认的预防代码。我花了好几个小时在这上面,不知道问题出在哪里。任何帮助都将不胜感激 <head> <script type="text/javascript"> <!--

当用户的浏览器启用Javascript时,我试图将“我的个人资料”菜单链接重定向到自定义url。我已经编写了一个自定义url创建动态函数
getNewURL()
,连接工作正常。问题是,即使启用了Javascript(在我的Chrome上),href中的默认页面也会加载,尽管有所有默认的预防代码。我花了好几个小时在这上面,不知道问题出在哪里。任何帮助都将不胜感激

<head>
<script type="text/javascript">
<!--
function init() {
    document.getElementById('profile').onclick=getNewURL;
}

window.onload=function(){
init();
}



function getNewURL(e)
{
    if(!e) e = window.event;
    var a = 'http://www.google.com/'; 
    var b = 'advanced_search?hl=en';//this will actually be a dynamic wikispaces
             //variable - the username. 
    var url = a+b;

    window.location.href = url;

    //Over-riding default action
    //e.cancelBubble is supported by IE
    e.cancelBubble = true;
    e.returnValue = false;

    //e.stopPropagation works only in Firefox.
    if (e.stopPropagation) {
        e.stopPropagation();
        
    }
    e.preventDefault();
    return false;
}
//-->
</script>
</head>

<body>
<div id="menu">
<ul>
    <li><a href="http://www.google.com/" id="profile">My Profile</a></li>
</ul>
</div>
</body>        


似乎您忘记了将参数添加到函数定义中

function getNewURL(e) ...

似乎您忘了将参数添加到函数定义中

function getNewURL(e) ...
什么是e

function getNewURL()
{
    if(!e) var e = window.event;  <--
什么是e

function getNewURL()
{
    if(!e) var e = window.event;  <--

您的e.preventDefault在您的e.stopPropagation检查中。因此,当你不在firefox上时,它就不会这样做。如果你把它移到if声明之外,它应该在chromeI中起作用,我希望是这样,但遗憾的是,事实并非如此。默认预防仍然不起作用。我不知道您在哪里调用
init
方法。我以为init()是内置的。我的错。将此添加到代码中以调用它。window.onload=function()。忘记保存并尝试。现在工作!谢谢大家。你们所有人共同帮助我修复了它。您的e.preventDefault在您的e.stopPropagation支票内。因此,当你不在firefox上时,它就不会这样做。如果你把它移到if声明之外,它应该在chromeI中起作用,我希望是这样,但遗憾的是,事实并非如此。默认预防仍然不起作用。我不知道您在哪里调用
init
方法。我以为init()是内置的。我的错。将此添加到代码中以调用它。window.onload=function()。忘记保存并尝试。现在工作!谢谢大家。你们一起帮我修好的。呜呜……打字错误。我的实际定义是e。还是不起作用。呜呜……打字错误。我的实际定义是e。还是不起作用。嗯,不仅仅是因为这个,谢谢!现在工作。你的建议帮助解决了部分问题。嗯,不仅仅是问题。谢谢!现在工作。你的建议帮助解决了部分问题。