如何从Javascript函数中导航到href
我有一个webapp问题。 iOS设备(iPad)中的双触式特定按钮 触发一个单击事件,该事件触发一些iOS默认行为,从而缩放页面。如何从Javascript函数中导航到href,javascript,preventdefault,Javascript,Preventdefault,我有一个webapp问题。 iOS设备(iPad)中的双触式特定按钮 触发一个单击事件,该事件触发一些iOS默认行为,从而缩放页面。 我想阻止这种事情发生 因此,我在click事件的顶部元素elementId1添加了一个eventListener 我选择顶部元素elementId1,因为这种副作用会发生在各种嵌套元素上,我希望在html元素层次结构的顶部有一个单一的catch all click eventListener,以防止这种情况在多个位置发生 eventListener触发一个函数on
我想阻止这种事情发生 因此,我在click事件的顶部元素elementId1添加了一个eventListener 我选择顶部元素elementId1,因为这种副作用会发生在各种嵌套元素上,我希望在html元素层次结构的顶部有一个单一的catch all click eventListener,以防止这种情况在多个位置发生 eventListener触发一个函数onClickTopElement,该函数调用
event.preventDefault()
eventListener设置了以下属性:
- 捕获:false-这会导致事件在冒泡阶段触发,即在上升过程中而不是下降过程中触发
这意味着:
- 事件首先在元素上激发,该元素可能有一个在单击时触发的函数,并执行其设计的操作
- 当事件冒泡时,它会到达elementId1元素,该元素触发函数onClickTopElement,该函数调用
,该函数将禁用放大页面的iOS默认行为event.preventDefault()
有一个带有href标记的按钮(elementId4),单击该按钮可转到另一个页面。
这是由浏览器的默认行为完成的。
但由于elementId4嵌套在elementId1中,因此现在可以防止默认的onClick行为 一种解决方案是将特定的onClick eventListener添加到elementId4,并执行默认行为的操作,即导航到href。
在onClick eventListener函数中导航到href的命令是什么。
谢谢这就是您想要的:
window.location=event.currentTarget.href
?为什么在另一个按钮中有按钮???您不能在另一个按钮中包含按钮或链接。很难回答您的问题,因为您所做的是违反W3C的specs@Barmar,我发现我可以用:
替换
,但后来我意识到我有很多这样的按钮,所以这个解决方案不实用。取而代之的是,我在感谢中重新表述了我的问题。这是否回答了你的问题?
elementId1
elementId2
elementId3
elementId4
// add catch-all 'click' eventListener, at the top of the html elements so that on iOS the side-effect of scaling-the-page when double-touching never happens
let element1 = document.getElementById('elementId1');
element1.addEventListener( 'click', onClickTopElement, {capture: false, passive: false} );
function onClickTopElement(event) {
// prevent from trickling the event, when touching, which causes, in iOS to zoom the entire page
event.preventDefault();
}