如何用js插入JS同时要执行起来(第三次问) 首先说下..你这个代码是错误的.. var objHead=document.getElementsByTagName("head"); 改成 var objHead=document.getElementsByTagName("head")[0]; 就可以了 oScript.defer = "defer"; 这个可以去掉 ie only 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 还有就是你的HTML不完整..<head> 节点都没有 我觉得代码有个小问题,另外想法需要考虑一下代码:setTimeout如果作为定时用的话,应该调用本身inMsg(),而不是调用另外一个函数LoadJS()。或者把setTimeout换成setInterval想法:它这里的报错,“script为空或不是对象”,不是指你页面上调用时的参数错误,而是KKPlayer.js本身没有执行成功js主要是在页面上进行交互,那么它很多地方可能要用到页面里的对象/元素,仅仅将一段js引用进来,但是整个页面里面,没有该js原页面中应有的环境,应该是很难实现的简单看了一下,KKPlayer.js中应该这一句没有执行成功document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");之后它又var script=document.getElementById("__ie_onload");这个script,可以在后面简单输出看一下,alert(script);值是null那么其他地方调用这个script对象时,应该会报错:“script为空或不是对象” 但是我直接用HTML输入<div id="ShowMsg"> <script src='http://play.kankan.xunlei.com/u/JSPlayer/KKPlayer.js' charset='gbk' width='538' height='477' autoPlay='1' source='mid=1314' unid='11865'></script> </div>就正常执行啊 这个,你说得很有道理,呵呵,我想应该是,直接插入的话,会调用 KKPlayer.js 最后一句 window.onload=init;那么 在 LoadJS() 最后加入init();function LoadJS()(){…………init();}虽然报错,但是直接插入的效果,不知是不是你想要的 1楼说的得没错啊你抄我的代码都抄错啊??<script language="JavaScript"> function LoadJS(fileUrl) { var objHead=document.getElementsByTagName('head'); var oScript= document.createElement("script"); oScript.defer = "defer"; oScript.src=fileUrl ; objHead[0].appendChild(oScript); } setTimeout(function(){LoadJS("tmp.js");},1000); </script>看到给你的代码中没?红色部分! chinmo 你测试我的代码没有嘛?另外我的问题3的怀疑 你能帮我解释有一下吗?就是那些参数的问题 而你这个用的是ShowMsg.appendChild(oScript); 所以你没有定义 楼上的意思,为<head>对象创建一个子节点,子节点为<script>标签,并修改src,和lz的做法还类似把,lz将<script>作为ShowMsg的子节点创建,lz主要问题是,仅这样载入KKPlayer.js不能正常执行,因为KKPlayer.js会有它自己处理的方式,所以我想,引用别人的js最主要考虑是,怎样保证有相同的运行环境 我看了下那个JS,确实是他的JS有问题你调用CSDN得JS是没问题 当然啊你直接输入的是正常的但是你用JS加入的肯定不行你自己好好看下他的代码JS里有干扰的代码 怎么改? 在你的函数function LoadJS(){ //你的代码init(); //最后加上这一句} 这样我测试还是有效的关于它的jsKKPlayer.js我看到的是,它用两种形式初始化方法init();1。一种是window.onload2。一种是判断浏览器状态readyState当你直接用HTML输入,就会使用1,正常显示否则,你自己使用节点创建的方式,动态加入js,那么将无法使用1。要使用2,但2由于种种原因没有成功执行,所以只能模仿使用1,就是上面说的,LoadJS()函数里面加入 init(),自己来初始化 另外,它js判断是否使用 2,主要判断是否有元素 __ie_onload这样的话,你可以再页面里面自己加入一个,比如<span id=__ie_onload></span>这样就不会报错了但是想让它js运行,你还是需要在你的函数LoadJS()里面,最后加入init(); 呵呵init(); 加上可以是为了执行他的代码可以播放但是那个错误还是会存在的 /*@cc_on @*//*@if(@_win32)if(!document.getElementById("__ie_onload")){document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");var script=document.getElementById("__ie_onload");script.onreadystatechange=function(){if(this.readyState=="complete"){init();}};};/*@end @*/呵呵 <html><head><title> New Document </TITLE><script language="javascript"> <!--function LoadJS() { var objHead=document.getElementsByTagName("head"); var ShowMsg = document.getElementById("ShowMsg"); var oScript= document.createElement("script"); oScript.defer = "defer"; oScript.src="http://play.kankan.xunlei.com/u/JSPlayer/KKPlayer.js"; oScript.charset="gbk"; //尝试这样加 oScript.width="538"; //尝试这样加 oScript.height="477"; //尝试这样加 oScript.autoPlay="1"; //尝试这样加 oScript.source="mid=2686"; //尝试这样加 oScript.unid="11865"; //尝试这样加 ShowMsg.appendChild(oScript); init(); } function inMsg() { setTimeout(function(){LoadJS();},100); } //--> </script></head><body><div id="ShowMsg"> <script src='http://play.kankan.xunlei.com/u/JSPlayer/KKPlayer.js' charset='gbk' width='538' height='477' autoPlay='1' source='mid=1314' unid='11865'></script></div><a href="javascript:inMsg();">点</a><span id=__ie_onload> </span> </body>这个写法是正确的,排除了他的干扰代码 您们 还没帮我解释下那些参数的问题 oScript.charset="gbk"; //尝试这样加 oScript.width="538"; //尝试这样加 oScript.height="477"; //尝试这样加 oScript.autoPlay="1"; //尝试这样加 oScript.source="mid=2686"; //尝试这样加 oScript.unid="11865"; //尝试这样加我这样的加法对吗?原来是这样的:<script src='********.js' charset='gbk' width='538' height='477' autoPlay='1' source='mid=1314' unid='11865'></script>我这样加之后 貌似有点问题,我那个播放器不够完美了不能全屏,并且没有字幕提示等等。一直显示“准备就绪”,你们那看 是这样吗?好了 不管怎么样,差不多可以结帖了。非常谢谢两位.请大家记住chinmo 和 testoktest oScript.charset="gbk"; //尝试这样加 oScript.width="538"; //尝试这样加 oScript.height="477"; //尝试这样加 oScript.autoPlay="1"; //尝试这样加 oScript.source="mid=2686"; //尝试这样加 oScript.unid="11865"; //尝试这样加这些都可以这么加的 等你这句话等了很久啦。那顺便问下,被src的JS没接收这些参数呢?哈哈 是不是扯远啦。 把我的 Google 的后载入发来给你参考一下.// /* Google load */// // 加载 运程 Google js 脚本 // var headObj = $("head")[0];//// scriptObj = document.createElement("script");// scriptObj.language = "javascript";// scriptObj.type = "text/JavaScript";// scriptObj.src = "http://www.google-analytics.com/urchin.js";// // 加载完毕 触发 统计事件// scriptObj.onload=scriptObj.onreadystatechange=function(){// if(this.readyState && this.readyState == 'loading'){// return;// }else{// this.onsuccess();// }// };// scriptObj.onsuccess=function(){// urchinTracker();// };// headObj.appendChild(scriptObj);//// /* Google load */ 讨论得很激烈么。我看到jsvm里面是先用xmlhttp取得js的内容,再用eval执行。效果不错呢。 完了,我用IE测试 可以 正常用Maxthon(遨游)测试 不行。 jquery获取select对象集合 求教:(冒号)的用法 Google地图左边显示行政区域那儿 Java script 的 cookie 问题 求解释两句正则表达式 一段很短的代码了? 内嵌框架<IFRAME>传值问题 求助:关于 doScroll()在popupWindow中的使用 automation服务器不能创建对象,为什么?请指点! 跪求大佬解决js问题四级难度 FCKeditor编辑框中插入静态HTML页面 firefox 如何设置控件位置
代码:setTimeout如果作为定时用的话,应该调用本身inMsg(),而不是调用另外一个函数LoadJS()。或者把setTimeout换成setInterval
想法:它这里的报错,“script为空或不是对象”,不是指你页面上调用时的参数错误,而是KKPlayer.js本身没有执行成功
js主要是在页面上进行交互,那么它很多地方可能要用到页面里的对象/元素,仅仅将一段js引用进来,但是整个页面里面,没有该js原页面中应有的环境,应该是很难实现的
简单看了一下,KKPlayer.js中应该这一句没有执行成功
document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
之后它又
var script=document.getElementById("__ie_onload");
这个script,可以在后面简单输出看一下,alert(script);值是null
那么其他地方调用这个script对象时,应该会报错:“script为空或不是对象”
<div id="ShowMsg">
<script src='http://play.kankan.xunlei.com/u/JSPlayer/KKPlayer.js' charset='gbk' width='538' height='477' autoPlay='1' source='mid=1314' unid='11865'></script>
</div>就正常执行啊
我想应该是,直接插入的话,会调用 KKPlayer.js 最后一句 window.onload=init;
那么 在 LoadJS() 最后加入init();function LoadJS()(){
…………
init();
}虽然报错,但是直接插入的效果,不知是不是你想要的
你抄我的代码都抄错啊??
<script language="JavaScript">
function LoadJS(fileUrl)
{ var objHead=document.getElementsByTagName('head');
var oScript= document.createElement("script");
oScript.defer = "defer";
oScript.src=fileUrl ;
objHead[0].appendChild(oScript);
}
setTimeout(function(){LoadJS("tmp.js");},1000);
</script>看到给你的代码中没?红色部分!
另外我的问题3的怀疑 你能帮我解释有一下吗?
就是那些参数的问题
所以你没有定义
你调用CSDN得JS是没问题
你直接输入的是正常的
但是你用JS加入的肯定不行
你自己好好看下他的代码JS里有干扰的代码
function LoadJS(){
//你的代码
init(); //最后加上这一句
} 这样我测试还是有效的关于它的js
KKPlayer.js我看到的是,它用两种形式初始化方法init();
1。一种是window.onload
2。一种是判断浏览器状态readyState
当你直接用HTML输入,就会使用1,正常显示
否则,你自己使用节点创建的方式,动态加入js,那么将无法使用1。要使用2,但2由于种种原因没有成功执行,所以只能模仿使用1,就是上面说的,LoadJS()函数里面加入 init(),自己来初始化
这样的话,你可以再页面里面自己加入一个,比如
<span id=__ie_onload></span>这样就不会报错了但是想让它js运行,你还是需要在你的函数LoadJS()里面,最后加入init();
init(); 加上可以是为了执行他的代码可以播放
但是那个错误还是会存在的
呵呵
<head>
<title> New Document </TITLE>
<script language="javascript">
<!--
function LoadJS()
{
var objHead=document.getElementsByTagName("head");
var ShowMsg = document.getElementById("ShowMsg");
var oScript= document.createElement("script");
oScript.defer = "defer";
oScript.src="http://play.kankan.xunlei.com/u/JSPlayer/KKPlayer.js";
oScript.charset="gbk"; //尝试这样加
oScript.width="538"; //尝试这样加
oScript.height="477"; //尝试这样加
oScript.autoPlay="1"; //尝试这样加
oScript.source="mid=2686"; //尝试这样加
oScript.unid="11865"; //尝试这样加
ShowMsg.appendChild(oScript);
init();
} function inMsg()
{
setTimeout(function(){LoadJS();},100);
}
//-->
</script></head>
<body><div id="ShowMsg">
<script src='http://play.kankan.xunlei.com/u/JSPlayer/KKPlayer.js' charset='gbk' width='538' height='477' autoPlay='1' source='mid=1314' unid='11865'></script>
</div><a href="javascript:inMsg();">点</a>
<span id=__ie_onload> </span> </body>
这个写法是正确的,排除了他的干扰代码
oScript.width="538"; //尝试这样加
oScript.height="477"; //尝试这样加
oScript.autoPlay="1"; //尝试这样加
oScript.source="mid=2686"; //尝试这样加
oScript.unid="11865"; //尝试这样加我这样的加法对吗?
原来是这样的:<script src='********.js' charset='gbk' width='538' height='477' autoPlay='1' source='mid=1314' unid='11865'></script>
我这样加之后 貌似有点问题,我那个播放器不够完美了
不能全屏,并且没有字幕提示等等。一直显示“准备就绪”,
你们那看 是这样吗?好了 不管怎么样,差不多可以结帖了。非常谢谢两位.请大家记住chinmo 和 testoktest
oScript.width="538"; //尝试这样加
oScript.height="477"; //尝试这样加
oScript.autoPlay="1"; //尝试这样加
oScript.source="mid=2686"; //尝试这样加
oScript.unid="11865"; //尝试这样加这些都可以这么加的
等你这句话等了很久啦。那顺便问下,被src的JS没接收这些参数呢?
哈哈 是不是扯远啦。
// // 加载 运程 Google js 脚本
// var headObj = $("head")[0];
//
// scriptObj = document.createElement("script");
// scriptObj.language = "javascript";
// scriptObj.type = "text/JavaScript";
// scriptObj.src = "http://www.google-analytics.com/urchin.js";
// // 加载完毕 触发 统计事件
// scriptObj.onload=scriptObj.onreadystatechange=function(){
// if(this.readyState && this.readyState == 'loading'){
// return;
// }else{
// this.onsuccess();
// }
// };
// scriptObj.onsuccess=function(){
// urchinTracker();
// };
// headObj.appendChild(scriptObj);
//
// /* Google load */
我看到jsvm里面是先用xmlhttp取得js的内容,再用eval执行。效果不错呢。
用Maxthon(遨游)测试 不行。