preventDefault()在Firefox中不起作用

时间:2013-09-22 20:58:07

标签: javascript tinymce

任何人都可以指出这段代码有什么问题。这适用于Chrome,但不适用于Firefox。我已将我的问题更新为更清楚了。请查看下面的内容。实际上,它是tinymce编辑器。当我单击时,工具栏中的等式符号,自动创建带有类AMedit的跨度。现在当光标在等式内时,回车键不应该将光标移动到新行。我的代码仅适用于chrome,但不适用于其他浏览器。您可以在不同的浏览器中查看。

http://beyondthelogix.com/demos/editordemo/demo.html

tinyMCE.init({

theme : "advanced",
mode: "exact",
elements : "elm1",
setup : function(ed) {
ed.onInit.add(function(ed, evt) {
    tinymce.dom.Event.add(ed.getDoc(), 'keydown', function(e) {
        var existing = tinyMCE.get('elm1').getElement(e);
        var code = (e.keyCode ? e.keyCode : e.which);
        var spans = tinyMCE.activeEditor.getBody().getElementsByTagName("span");
        if (spans.length > 0)
        {
           for (var i = 0; i < spans.length; i++)
           {
              if (spans[i].getAttribute("class") === "AMedit")
              {
                 if (code === 13)
                 {

        (e.preventDefault) ? e.preventDefault() : e.returnValue = false;
         }
              }
           }
        }
    });
  });
},

当我使用警报时,我在firefox中获取它,但e.preventDefault()不起作用。

4 个答案:

答案 0 :(得分:1)

 $("#button").click(function (e) {
    e.preventDefault();

Chrome会初始化event,但Firefox不会。 使用它,它将在Firefox和Chrome中使用。

不要放100 preventDefault();。放在需要的地方。

示例:

$(".button").click(function (e) {
    e.preventDefault();
    $(this).fadeOut(250, function () {
        $(this).closest('td').children('.hiddenDiv').show().fadeIn();
    });
});

希望它有所帮助。

答案 1 :(得分:0)

这:(e.preventDefault) ? e.preventDefault() : e.returnValue = false; 您似乎正在尝试访问属性preventDefault而不是调用方法preventDefault()

答案 2 :(得分:-2)

尝试返回false,应该适用于所有浏览器。

return false;

答案 3 :(得分:-2)

尝试使用event而不是e来使用preventDEfault。

evt.preventDefault()

我认为你正在调用一个不存在的变量或参数。你看到控制台里有什么东西吗?