Javascript 检测浏览器是否支持contentEditable?
有,但发布的解决方案是浏览器嗅探,这是我试图避免的 我需要使我的网站与iPad兼容,也许还有更新的Androids。我一直在使用旧版本的FCKEditor(现在是CK编辑器)作为我的所见即所得编辑器,但这在移动设备上不起作用,所以如果不支持的话,我想将它换成一个简单的文本区域,比如标记 假设它不起作用,因为移动设备往往不支持这个Javascript 检测浏览器是否支持contentEditable?,javascript,jquery,contenteditable,Javascript,Jquery,Contenteditable,有,但发布的解决方案是浏览器嗅探,这是我试图避免的 我需要使我的网站与iPad兼容,也许还有更新的Androids。我一直在使用旧版本的FCKEditor(现在是CK编辑器)作为我的所见即所得编辑器,但这在移动设备上不起作用,所以如果不支持的话,我想将它换成一个简单的文本区域,比如标记 假设它不起作用,因为移动设备往往不支持这个contentEditable属性,这意味着当你点击它时屏幕上的键盘不会弹出 如何检测浏览器是否支持contentEditable?有人建议我用类似于mydiv.cont
contentEditable
属性,这意味着当你点击它时屏幕上的键盘不会弹出
如何检测浏览器是否支持contentEditable
?有人建议我用类似于mydiv.contentElement===undefined
之类的东西检查有问题的div,但是div(如果它使用的是一个)都内置在FCK编辑器中,并埋在iframe的某个地方
是否有其他方法可以检测浏览器是否支持contentEditable
刚刚试过这个:
var contentEditableSupport = typeof $('<div contenteditable="true">')[0].contentEditable !== 'undefined';
var contentEditableSupport=typeof$(“”)[0]。contentEditable!='未定义';
在我的iPad上说“真的”。。。。。。我认为不应该
编辑:它返回“字符串”,因为所有属性都是字符串。。。。它只是读取属性。我还能怎么做呢?您可以创建一个匿名的可编辑div,检查它是否有contentEditable,然后删除该div。我可以通过检查
contentEditable
属性的默认值而不是状态或类型来实现这一点。表示contentEditable
缺少的默认值为“inherit”,但在较旧的浏览器(如Android/Gingerbread)中,默认值为“false”。感谢福吉在OP上的评论,为我指明了正确的方向
这个测试对我有用:
var contentEditableSupport = $('<div/>')[0].contentEditable == 'inherit';
var contentEditableSupport=$(“”)[0]。contentEditable=='inherit';
检查执行命令
if (document.execCommand) {
... browser supports contentEditable
} else {
... browser doesn't support contentEditable
}
这是我使用的测试,也是。在iOS 4(可能更早)中会出现误报,但不幸的是,在这些环境中无法检测到
var contentEditableSupport = "contentEditable" in document.documentElement;
检查元素是否存在任何属性。你可以这样做
var element = document.createElement('__ELEMENT__');
if ('__PROPERTY__' in element ) {
// property supported in the browser
}
或
if ('__PROPERTY__' in document.createElement('__ELEMENT__') ) {
// property supported in the browser
}
下面的链接包含了所有内容
与Modernizr类似的方法(只有Modernizr不检测可编辑内容)。我不确定这是否有帮助(这里没有要测试的iOS),但默认值为
$(“”)[0]。contentEditable
是inherit
。iOS显示了什么?@fudgey:周一必须检查一下。。。我实际上没有iPad。只有一个在工作。@fudgey:无法检查…被转移到其他事情上了。无法访问iPad。测试document.execCommand()
与测试contenteditable
不同。例如,Firefox支持document.execCommand()。一般来说,最好测试您感兴趣的实际功能。我接受这个,因为这是一个相当有名的框架。谢谢。@Mark:这很公平,尽管众所周知的框架远非绝对正确。好吧,如果我再回到这里,发现这个解决方案不起作用,并找到一个更好的解决方案,我会偷走你的复选标记;)