JS创建Script节点的问题 本帖最后由 zz215628064 于 2011-01-24 11:41:44 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 请问楼主是要执行activatables()方法? window.onload = function(){ var varScriptInnerHTML = "activatables('page', ['page-1', 'page-2', 'page-3', 'page-4', 'page-5', 'page-6', 'page-7'])"; GenerateScript('', varScriptInnerHTML); };function GenerateScript(varSrc, varInnerHTML){ var varScript = document.createElement("script"); if (varSrc != "") { varScript.src = varSrc; } varScript.language = "javascript"; varScript.type = "text/javascript"; if (varInnerHTML != "") { varScript.text = varInnerHTML; } document.body.appendChild(varScript);}由于不知道你的varArray是神马 所以就直接用你上面的代码替代了 或者说。我现在想创建一个Script然后在<Script>里面调用activatables('page', ['page-1', 'page-2', 'page-3', 'page-4', 'page-5', 'page-6', 'page-7'])这句函数, 要怎么写?谢谢。 你的唯一问题应该是在dom加载完毕之前调用了document.body所以我给你加了window.onload = function(){} 首先感谢您的回答。这个方法我也试过。可是在IE6里面,执行document.body.appendChild(varScript);的时候就会报错:Microsoft JScript 运行时错误: 缺少对象但是我如果不给动态创建的varScript.text赋予varInnerHTML的值时,就不会出错。而且我如果把这生成的代码拷贝下来。,然后硬写到<body>标签里面就不会错。 现在的这个生成Script的代码。就是在window.load里面写的。只是我把出错的代码拿出来?这个是通过HTML读取XML。然后生成相应的导航。。 我看了半天觉得LZ只要一个eval()就可以了,为什么要这么写? 请问。eval?要写到哪里? <body><script type="text/javascript"> activatables('page', ['page-1', 'page-2', 'page-3', 'page-4', 'page-5', 'page-6', 'page-7']);</script></body>现在只需要通过调用JS来实现这段代码。CJ205的回答: window.onload = function(){ var varScriptInnerHTML = "activatables('page', ['page-1', 'page-2', 'page-3', 'page-4', 'page-5', 'page-6', 'page-7'])"; GenerateScript('', varScriptInnerHTML); };function GenerateScript(varSrc, varInnerHTML){ var varScript = document.createElement("script"); if (varSrc != "") { varScript.src = varSrc; } varScript.language = "javascript"; varScript.type = "text/javascript"; if (varInnerHTML != "") { varScript.text = varInnerHTML; } document.body.appendChild(varScript);}这个试过会报错。因为在执行完 varScript.text = varInnerHTML;的时候。再调用 document.body.appendChild(varScript);报错:Microsoft JScript 运行时错误: 缺少对象我也迷茫了。。只需要生成这一就就可以了 一般建立script节点的目的是引用外部的js文件现在你在自己控制的js执行域中 建立一个script节点,然后在节点中添加js代码 然后在运行这个js。。这个有点多此一举吧既然在你直接的js控制域中 你就直接执行 activatables('page', ['page-1', 'page-2', 'page-3', 'page-4', 'page-5', 'page-6', 'page-7']); 我的这些['page-1', 'page-2', 'page-3', 'page-4', 'page-5', 'page-6', 'page-7'] 其实是通过Script读取XML来获得的名字。为了看着方便才硬写的。。 简单点说。<body><script type="text/javascript">activatables('page', ['page-1', 'page-2', 'page-3', 'page-4', 'page-5', 'page-6', 'page-7']);</script></body>实现这段代码的时候。 var varScriptInnerHTML = "activatables('page', ['page-1', 'page-2', 'page-3', 'page-4', 'page-5', 'page-6', 'page-7'])"; GenerateScript('', varScriptInnerHTML);function GenerateScript(varSrc, varInnerHTML){ var varScript = document.createElement("script"); if (varSrc != "") { varScript.src = varSrc; } varScript.language = "javascript"; varScript.type = "text/javascript"; if (varInnerHTML != "") { varScript.text = varInnerHTML; // 如果给这个varScript的text赋值的话, 在下面的appendChild就会报错 } document.body.appendChild(varScript);}这么写为啥会出错内? 这样有什么问题<script type="text/javascript">window.onload=function(){ var varScript = document.createElement("script"); varScript.language = "javascript"; varScript.type = "text/javascript"; varScript.text = 'alert(1);'; document.body.appendChild(varScript);};</script><body> 首先。在页面还没有创建完元素以后就调用了activatables的函数。这个函数在另一个文件中。通过document.getElementByID(varID)来找到元素。但是在window.load的时候页面元素还没有创建成功,所以在调用的时候就会出现,缺少对象的错误。 求jq图片自动切换原理。 disabled:true,的问题。 有难度,高手进! 弱弱的问问如何用js如何调用div中的内容? 菜鸟纹一个很简单的JavaScript问题。 高手请进 JQuery获取ul li问题求大神指点一二 如何强制输入日期?在线等... 动态监控文本框值的问题! 如何设置横向打印? 高手过来瞅瞅啊,帮忙啊 在HTML中调用其他js文件出错的问题
var varScriptInnerHTML = "activatables('page', ['page-1', 'page-2', 'page-3', 'page-4', 'page-5', 'page-6', 'page-7'])";
GenerateScript('', varScriptInnerHTML);
};
function GenerateScript(varSrc, varInnerHTML){
var varScript = document.createElement("script");
if (varSrc != "") {
varScript.src = varSrc;
}
varScript.language = "javascript";
varScript.type = "text/javascript";
if (varInnerHTML != "") {
varScript.text = varInnerHTML;
}
document.body.appendChild(varScript);
}
由于不知道你的varArray是神马 所以就直接用你上面的代码替代了
activatables('page', ['page-1', 'page-2', 'page-3', 'page-4', 'page-5', 'page-6', 'page-7'])
这句函数, 要怎么写?谢谢。
所以我给你加了window.onload = function(){}
而且我如果把这生成的代码拷贝下来。,然后硬写到<body>标签里面就不会错。
请问。eval?要写到哪里?
<script type="text/javascript">
activatables('page', ['page-1', 'page-2', 'page-3', 'page-4', 'page-5', 'page-6', 'page-7']);
</script>
</body>现在只需要通过调用JS来实现这段代码。CJ205的回答: window.onload = function(){
var varScriptInnerHTML = "activatables('page', ['page-1', 'page-2', 'page-3', 'page-4', 'page-5', 'page-6', 'page-7'])";
GenerateScript('', varScriptInnerHTML);
};
function GenerateScript(varSrc, varInnerHTML){
var varScript = document.createElement("script");
if (varSrc != "") {
varScript.src = varSrc;
}
varScript.language = "javascript";
varScript.type = "text/javascript";
if (varInnerHTML != "") {
varScript.text = varInnerHTML;
}
document.body.appendChild(varScript);
}这个试过会报错。
因为在执行完 varScript.text = varInnerHTML;的时候。再调用 document.body.appendChild(varScript);报错:Microsoft JScript 运行时错误: 缺少对象我也迷茫了。。只需要生成这一就就可以了
现在你在自己控制的js执行域中 建立一个script节点,然后在节点中添加js代码 然后在运行这个js。。这个有点多此一举吧
既然在你直接的js控制域中 你就直接执行 activatables('page', ['page-1', 'page-2', 'page-3', 'page-4', 'page-5', 'page-6', 'page-7']);
我的这些['page-1', 'page-2', 'page-3', 'page-4', 'page-5', 'page-6', 'page-7'] 其实是通过Script读取XML来获得的名字。为了看着方便才硬写的。。
<script type="text/javascript">
activatables('page', ['page-1', 'page-2', 'page-3', 'page-4', 'page-5', 'page-6', 'page-7']);
</script>
</body>
实现这段代码的时候。
var varScriptInnerHTML = "activatables('page', ['page-1', 'page-2', 'page-3', 'page-4', 'page-5', 'page-6', 'page-7'])";
GenerateScript('', varScriptInnerHTML);function GenerateScript(varSrc, varInnerHTML){
var varScript = document.createElement("script");
if (varSrc != "") {
varScript.src = varSrc;
}
varScript.language = "javascript";
varScript.type = "text/javascript";
if (varInnerHTML != "") {
varScript.text = varInnerHTML; // 如果给这个varScript的text赋值的话, 在下面的appendChild就会报错
}
document.body.appendChild(varScript);
}这么写为啥会出错内?
<script type="text/javascript">
window.onload=function(){
var varScript = document.createElement("script");
varScript.language = "javascript";
varScript.type = "text/javascript";
varScript.text = 'alert(1);';
document.body.appendChild(varScript);
};
</script>
<body>
首先。在页面还没有创建完元素以后就调用了activatables的函数。这个函数在另一个文件中。通过document.getElementByID(varID)来找到元素。但是在window.load的时候页面元素还没有创建成功,所以在调用的时候就会出现,缺少对象的错误。