htsign's blog

ノンジャンルで書くつもりだけど技術系が多いんじゃないかと思います

がある場合の対処

超適当に書いた。
下のコードに特に意味はない。

(function(wnd){
  var frms = wnd.frames || wnd.document.frames, len = frms.length;
  if (len>=1) {
    for (var i=0; i<len; i++) {
      arguments.callee(frms[i]);
    }
  }
  else {
    wnd = wnd.contentWindow || wnd;
    var elems = wnd.document.getElementsByTagName("*");
    for (var i=0,len=elems.length; i<len; i++) {
      if (typeof elems[i].disabled==="boolean") {
        elems[i].disabled = true;
      }
    }
  }
})(window);

これで階層深く潜っていけばいろんなオブジェクト操作できる。
<frame>よりも<div>が主流の今、使う場面はだいぶ少ないと思うけど。

<iframe><object>に取って代わられて消え行くと思われていたが、HTML5にも採用されたことで一定の地位を確立した。
けど、採用場面はクロスドメインの場合が多く、これはJavaScriptのポリシーでどんなに頑張っても中身を弄れないので今回は無視しました。