Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
停止在javascript中重定向_Javascript_Html - Fatal编程技术网

停止在javascript中重定向

停止在javascript中重定向,javascript,html,Javascript,Html,您好,我正在开发一个包含在sharepoint应用程序中的Web部件,在某些情况下我需要停止重定向。但它不起作用,我正在尝试使用 $('a').click(function(event){ event.preventDefault(); event.stopImmediatePropagation(); return false; }); 它执行并且无论如何重定向都完成了。我

您好,我正在开发一个包含在sharepoint应用程序中的Web部件,在某些情况下我需要停止重定向。但它不起作用,我正在尝试使用

$('a').click(function(event){
                event.preventDefault();
                event.stopImmediatePropagation();
                return false;
            });
它执行并且无论如何重定向都完成了。我怎样才能打破它

它的目的是:当用户更改页面上的某个内容时,我需要询问他是否想继续,然后停止他可能单击的其他链接的任何重定向

编辑: 我刚检查了一下,里面有链接的普通a可以正常工作,但问题是链接如下:

<a title="Delivery And Technology" class="ms-cui-ctl-large" id="someId" role="button" onclick="return false;" href="javascript:;" unselectable="on" mscui:controltype="" jQuery182001210093900916337="93">

在这个html中

<SPAN class=ms-cui-ctl-largeIconContainer unselectable="on"><SPAN class=" ms-cui-img-32by32 ms-cui-img-cont-float ms-cui-imageDisabled" unselectable="on"><IMG style="TOP: -96px; LEFT: -160px" alt="Delivery And Technology" src="/_layouts/1033/images/ps32x32.png" unselectable="on"></SPAN></SPAN><SPAN class=ms-cui-ctl-largelabel unselectable="on">Delivery And<BR>Technology</SPAN>
交付和
技术

因此,当我点击这个java脚本时,似乎可以识别它并重定向我,所以我想要实现的是检测它并在它将我重定向到其他页面之前停止。这将阻止动态添加的锚导航:

$(document).on('click', 'a', function(e){
     e.preventDefault();
     e.stopImmediatePropagation();
     return false;
});
steveukx建议速记:

$(document).on('click', 'a', false);

我的最佳猜测是在DOM准备就绪之前运行此代码。尝试将其包装成:


请注意,返回false相当于同时返回
.preventDefault()
.stopImmediatePropagation()
,因此只返回false就足够了。在您的情况下,只使用
.preventDefault()
可能更合适。

如果元素在代码执行之前附加了处理程序,则无法可靠地删除或阻止处理程序运行

假设您有可用的
jQuery
,并且在将元素添加到DOM并连接其处理程序后运行此函数,则可以使用相同的元素替换它:

jQuery('a').replaceWith(function(index, innerHTML) {
  return jQuery(this.cloneNode(false)).html(innerHTML);
});

你说重定向是什么意思?是否要阻止用户访问以下链接?请首先包括jQuery并将代码粘贴到document.ready中。您只需要第一个,preventDefault(),以防止锚的默认操作。您还可以使用
$(document)的缩写。on('click','a',false)
@karaxuna问题是这个a元素有id,重定向是用这个id绑定在java脚本中的,我不能修改它,因为它来自sharepoint,所以我想停止DOM上的所有操作
jQuery('a').replaceWith(function(index, innerHTML) {
  return jQuery(this.cloneNode(false)).html(innerHTML);
});