11

「contenteditable」HTML5 パラメータに関する関連情報が見つかりません。Google Plus が Chrome ブラウザでこれを使用していることがわかりました。

<div contenteditable="plaintext-only"></div>

他のブラウザはこれをサポートしていないようで、Chrome 独自の価値しかありません。プロジェクトで使用したい。ただし、ブラウザを検出し、「プレーンテキストのみ」の設定をサポートしているかどうかを確認する必要があります。

もちろん、検出できたのは Chrome だけでしたが、Chrome をサポートする他のブラウザーが存在する可能性があります (現時点ではわかりません)。または、他のメイン ストリーム ブラウザーが将来この機能のサポートを開始する可能性があります。

したがって、Chrome ブラウザーだけを検出するよりも、「プレーンテキストのみ」の機能がサポートされているかどうかを検出したいと思います。

誰でもこれで私を助けることができますか?

4

2 に答える 2

12

機能を検出するために例外をキャッチすることに頼りたくない場合の代替手段は次のとおりです。

function supportsPlaintextEditables () {
    var div = document.createElement('div');
    div.setAttribute('contenteditable', 'PLAINTEXT-ONLY');

    return div.contentEditable === 'plaintext-only';
}

console.log(supportsPlaintextEditables);
//-> true/false

プロパティの代わりに属性に値を設定すると、無効な値の場合に SyntaxError 例外がスローされず'plaintext-only'、代わりにプロパティ値がデフォルトの に設定されるため、これが機能します'inherit'

属性を設定した後にプロパティを取得すると、小文字の文字列になるため、属性値を に設定する'PLAINTEXT-ONLY'と、値が'plaintext-only'(サポートされている/true) または'inherit'(サポートされていない/false) のプロパティになります。

于 2013-08-19T14:58:26.190 に答える
11

これはWebkitのみの機能のようです。仕様では、属性の可能な値として「true」、「false」、および「inherit」のみが許可されています

編集仕様に平文のサポートを追加するバグが報告されていますが、要求が「平文のみ」ではなく「平文」であるのはおかしいです。

編集:このコードは、サポートを検出するために使用できます。デモ

function supportsPlainText()
{
    var d = document.createElement("div");
    try {
        d.contentEditable="PLAINtext-onLY";
    } catch(e) {
        return false;
    }
    return d.contentEditable=="plaintext-only";
}

alert(supportsPlainText());

ただし、ブラウザ固有のページを実行することが、IE6の問題につながったことを忘れないでください。

于 2012-05-20T09:44:24.220 に答える