创建元素
问题描述:
我想创建一个JavaScript函数运行的元素。创建元素
<script>
var uniqid='an unique Id';
document.write('<iframe id='+uniqid+'></iframe>');
someAsyncFunction(callback)
</script>
在其他代码部分我设置其他参数对于此元素
<script>
callback=function(paramfromcallback){
getElementById(uniqid).url=paramfromcallback;
}
</script>
但这不是工作在IE。我找不到这个元素。
我的问题是:
有页面上的许多元素,每个元素必须设置只有这个元素参数
我不知道哪个元素是父母,我不知道脚本元素ID。我需要插入的地方元素,其中被称为
的任何回调之前执行的代码第一部分第一个剧本,我希望保持它的异步
答
根据您的脚本块被击中的顺序进行声明,你可以有一些问题这里。 document.write()
创建内联脚本有趣的问题。通常情况下,它后面的任何脚本都将无法使用doc.write的结果,直到页面加载完成后 - 或者从另一个document.write()
块中。等待窗口完全加载可以解决您的问题。怎么样这样的事情 -
一旦定义:
function callback(id) {
var el = document.getElementById(id);
if (el !== null) {
el.url = 'http://google.com';
}
}
然后任何你想要写出来的iframe:
(function(){
var id = 'an_unique_Id';
document.write('<iframe id='+id+'></iframe>');
var l = window.onload;
var n = function() { someAsyncFunction(function() { callback(id); }); };
window.onload = (typeof l == 'function') ? function() { l(); n(); } : n;
})();
等待文档加载帮助我 – BGE