0

我使用 JavaFx WebView 来显示网页,但我不想在网页上进行任何交互(位置更改),并且 Web 引擎也禁用了 Javascript。由于这个原因,我尝试禁用超链接的所有操作并通过以下方式提交表单

a[style] {
    pointer-events: none !important;
    cursor: default;
}

input[style] {
    pointer-events: none !important;
    cursor: default;
}

所以我不能拖他们。这个问题还有其他方法吗?最好用 CSS 或 JavaFx 解决。
感谢提前。

4

2 回答 2

1

您可以尝试阻止对任意数量的事件执行默认操作。请注意,浏览器通常允许这样做,但有最终决定权(我模糊地记得这并不总是有效的一些问题)。

var events = ["keypress","click","submit","focus","blur","tab"];
events.forEach(function(eventName){
    window.addEventListener(eventName, function(e){
        // this is the list of tags we'd like to prevent events on
        // you may wish to remove this early return altogether, as even a div or span
        // can cause a form to submit with JavaScript
        if (["INPUT","A","FORM","BUTTON"].indexOf(e.tagName) === -1) {
            return;
        }

        // prevent the default action
        e.preventDefault();

        // stop other JavaScript listeners from firing
        e.stopPropagation();
        e.stopImediatePropagation();

        // if an input is somehow focused, unfocus it
        var target = e.target;
        setTimeout(function(){
          if (target.blur) target.blur();
        }, 50);
    // true as the third parameter signifies 'use capture' where available;
    // this means we get the event as it's going down, before it starts to bubble up
    // our propagation prevention will thus also prevent most delegated event handlers
    }, true);
});

你不能用 CSS 解决这个问题。 pointer-events不允许您指定哪些指针事件是可以的。为此,您确实需要 JavaScript。

于 2014-10-16T05:06:39.693 回答
1

使用jQuery:

$('input[type="submit"]').attr('disabled','disabled');

$('a').attr('disabled','disabled');

这样

于 2014-10-16T04:58:34.163 回答