2

javascript を使用して内部スタイルシートに css を追加しようとしています。これは私が使用したコードです:

function googleJS(){
    var iframe = document.getElementsByTagName('iframe')[0];
    var doc = iframe.contentWindow.document;
    var newScript = doc.createElement('style');
    newScript.setAttribute('.skiptranslate { display: none; }');
    var bodyClass = doc.getElementsByTagName('head')[0];         
    bodyClass.insertBefore(newScript, bodyClass.childNodes[2]);
}

ただし、これにより次の結果が得られます。

<style .skiptranslate {display: none};></style> 

DOM内に必要なCSSを含むスタイルタグを挿入するためにjavascriptを使用する適切な方法は何ですか?

ありがとう

4

2 に答える 2

4

名前が示すように (そしてドキュメントは言う) Element.setAttribute:

指定された要素の新しい属性を追加するか、既存の属性の値を変更します。

これはまさに<style>要素で起こっていることです。これを修正するには、代わりに.textContent/.innerTextまたはテキスト要素.setAttribute()を使用します。

function googleJS(){
    var iframe = document.getElementsByTagName('iframe')[0];
    var doc = iframe.contentWindow.document;
    var newScript = doc.createElement('style');
    var content = doc.createTextNode('.skiptranslate { display: none; }');
    newScript.appendChild(content);
    var bodyClass = doc.getElementsByTagName('head')[0];         
    bodyClass.insertBefore(newScript, bodyClass.childNodes[2]);
}
于 2013-01-20T17:59:10.887 に答える
-1

JQuery を使用できる場合: $().css('Property-Name', 'Value');

于 2013-01-20T17:56:03.640 に答える