

・サイトへ設置している広告のiframeタグにクラス名を付与したいです  
・どう書けば良いでしょうか？  
・iframeが表示されるのを待つ必要はある？

・iframe.className = "hoge"？  
・addClassNameは非標準？


CC BY-SA 3.0
2015-06-17T12:52:01.423
11444
2015-06-17T14:16:53.810
7886
question
javascript
サイトへ設置している広告のiframeタグにクラス名を付与したい


生の DOM API を使うなら、 `getElementById()` 等でDOM要素を取得し、
[`element.className`](https://developer.mozilla.org/ja/docs/Web/API/Element/className)
でスペース区切りのクラス名を置き換えます。最近のブラウザであれば
[`element.classList.add()`](https://developer.mozilla.org/ja/docs/Web/API/element/classList)
で簡単に追加することもできるようです。

ご指摘の [`addClassName()`](http://api.prototypejs.org/dom/Element/addClassName/)
は prototype.js のメソッドかと思います。

> iframeが表示されるのを待つ必要はある？

DOM要素に対して操作を行いますから、対象のDOM要素が生成されている必要があります。

広告を埋め込むタグより後ろに書くだけで済むかもしれませんが、それでダメなら何らかの方法で iframe
の生成ないし読み込みを待つ必要があります。[iframe の load
イベントはバブリングが行われない](https://stackoverflow.com/q/6953610/2818869)ようですから、Mutation
Observer を使ったり、タイマーで監視したり、といった形になるかと思います。


CC BY-SA 3.0
2015-06-17T14:16:53.810
11446
2015-06-17T14:16:53.810
2017-05-23T12:38:56.467
-1
8000
11444
answer