1

我想检查用户浏览器是否支持“contenteditable”或任何 HTML5 属性?

所以这是我的 JavaScript:

var isEditable=false;
function chk() {
    var z=document.getElementById("mydivid");

    if(typeof(z["isContentEditable"])==="boolean") {
        isEditable=true;
    }
}

function doEdit() {
    chk();
    var z=document.getElementById("mydivid");
    if(isEditable) {
        z.setAttribute("contenteditable","true");
        z.focus();
    } else {
        /* add a texbox and put all div's innerHTML into it, All in all:  a Boring Stuff. */
    }
}

这是HTML:

<a href="#" onclick="doEdit();">Click To Edit </a>
<div id="mydivid"> Hi Ssup ?? <img src='' alt="some image" /></div>

谁能告诉我我的方法是否正确?它可以在 IE(version<8.0) 中工作吗?而且还需要更好的方法!

4

2 回答 2

7

简单检查:

if ('isContentEditable' in document.createElement('span')) {
    // supported
}

我还将分享这些精选的片段,将来会对您有所帮助:http: //diveintohtml5.info/everything.html

于 2013-02-16T17:48:02.350 回答
2

检查元素是否存在任何属性。你可以这样做

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
}

以下链接包含所有内容。

  1. https://github.com/Modernizr/Modernizr/issues/570
  2. http://diveintohtml5.info/everything.html#contenteditable
于 2013-02-16T18:00:30.543 回答