Chrome ext,创建JQuery对话框的内容脚本需要忽略iframe

我有简单的chrome扩展,在我打开的每个选项卡上打开JQuery对话框,
问题是当网页中包含iframe时,对话框会打开页面中的iframe数量。
我想避免这种情况,我只需要打开它,每个页面只有一个对话框实例。 我该如何避免页面中的iframe?
这是我的内容脚本:

var layerNode= document.createElement('div'); layerNode.setAttribute('id','dialog'); layerNode.setAttribute('title','Basic dialog'); var pNode= document.createElement('p'); console.log("msg var: "+massage); pNode.innerHTML = massage; layerNode.appendChild(pNode); document.body.appendChild(layerNode); jQuery("#dialog").dialog({ autoOpen: true, draggable: true, resizable: true, height: 'auto', width: 500, zIndex:3999, modal: false, open: function(event, ui) { $(event.target).parent().css('position','fixed'); $(event.target).parent().css('top', '5px'); $(event.target).parent().css('left', '10px'); } }); 

包装所有这些怎么样

 if(window==window.top) { // we're not in an iframe // your code goes here } 

正如PAEz在评论中所说,内容脚本默认只在顶部框架中运行。 要使它们在子帧中运行,您需要在清单的content_scripts部分中使用 “all_frames”:true’。 同样,如果您使用tabs.executeScript注入脚本,则必须在InjectDetails参数中包含’“allFrames”:true’。