首先说下..你这个代码是错误的.. var objHead=document.getElementsByTagName("head"); 改成 var objHead=document.getElementsByTagName("head")[0]; 就可以了 oScript.defer = "defer"; 这个可以去掉 ie only
解决方案 »
- showModalDialog出现缺少对象的问题
- 如何取得相对于显示窗口指定点坐标的元素?
- 在Onclick里面如何执行action
- jsp javascript servlet javabean struts hibernate spring学习
- 请教病毒是如何通过挂马进行传播的
- 鼠标事件attachEvent引起的奇怪问题?急!高手赐教!
- 随便给一个很长的网址,怎样将它格式化成只剩域名的顶级部分?
- 为什么这个例子不能运行
- uploadify3.2 ie8 以上高版本 ie9 ie10 ie11 文件选择按钮无法点击
- Js的 Number("18.74")*100=1873.9999999999998
- 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(遨游)测试 不行。