如果我真的很疯狂并且无法控制地创建新框架。我会选择类似的东西:
var globalScriptObject={};
function addToAllFrames(var scriptName){
if (!globalScriptObject[scriptName].length){
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","scriptName",true);
xmlhttp.send();
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
globalScriptObject[scriptName] = xmlhttp.responseText;
}
}
}
var frames= document.getElementsByTagName("iframe");
for (var x = 0; x < frames.length; x++) {
if (!frames[x].getElementsByName(scriptName).length){
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', globalScriptObject[scriptName]);
script.setAttribute('name', scriptName);
frames[x].append(script);
}
}
}
并在 iFrame 创建回调上调用它。
你包装一个:
if (frames[x].hasAttribute("data-YUI"){
}
和
<iframe data-YUI="true" src="">
当您创建 iFrame 时,需要专门寻找一些东西。如果页面上有其他 iframe。
尽管如此,在很多方面完全没有意义。依赖缓存。