Javascript文档。编写另一个脚本
因此,我尝试使用document.write为文档编写另一个脚本。以下是我的函数代码:Javascript文档。编写另一个脚本,javascript,escaping,Javascript,Escaping,因此,我尝试使用document.write为文档编写另一个脚本。以下是我的函数代码: function onSaveOk(streamName,streamDuration,userId,cameraName,micName,recorderId){ //alert("onSaveOk("+streamName+","+streamDuration+","+userId+","+cameraName+","+micName+")"); //the us
function onSaveOk(streamName,streamDuration,userId,cameraName,micName,recorderId){
//alert("onSaveOk("+streamName+","+streamDuration+","+userId+","+cameraName+","+micName+")");
//the user pressed the [save] button inside the recorder and the save_video_to_db.XXX script returned save=ok
//recorderId: the recorderId sent via flash vars, to be used when there are many recorders on the same web page
$('#record').hide();
document.write('"<d"+"iv id=jwplayer>"
+ "<cen"+"ter>" +
"<d"+"iv id=mediaplayer>"+"</di"+"v>"+
"<scr"+"ipt type=text/javascript>
jwplayer('mediaplayer').setup({
'flashplayer': 'jwplayer/player.swf',
'id': 'playerID',
'width': '640',
'height': '580',
'provider': 'rtmp',
'streamer': 'rtmp://domain/recorder/_definst_',
'file': 'onSaveOk("+streamName+")'
}); " +
"</scr"+"ipt>"+
"</cen"+"ter>"
')
函数onSaveOk(streamName、streamDuration、userId、cameraName、micName、recorderId){
//警报(“onSaveOk”(“+streamName+”、“+streamDuration+”、“+userId+”、“+cameraName+”、“+micName+”));
//用户按下录像机内的[save]按钮,save\u video\u to\u db.XXX脚本返回save=ok
//recorderId:通过闪存变量发送的recorderId,当同一网页上有多个记录器时使用
$(“#记录”).hide();
document.write(“”
+ "" +
""+""+
"
jwplayer('mediaplayer')。设置({
“flashplayer”:“jwplayer/player.swf”,
'id':'playerID',
“宽度”:“640”,
‘高度’:‘580’,
“提供者”:“rtmp”,
“拖缆”:rtmp://domain/recorder/_definst_',
'文件':'onSaveOk(“+streamName+”)'
}); " +
""+
""
')
基本上,所发生的事情是,原本要显示的记录器根本不显示。当我在函数中有此功能时,出于某种原因,
$(“#record”).hide();
不起作用…您应该直接使用jQuery附加
,并正常调用该函数。解析文档后,不要使用document.write()
,因为它将清除当前文档。相反,您需要通过编程向文档中添加元素
要在加载文档后将HTML添加到文档中,可以使用以下javascript:
var player = document.createElement("div");
player.innerHTML = '<div id="mediaplayer"></div>';
player.id = "jwplayer";
document.body.appendChild(player); // you decide where to add it to your page
jwplayer('mediaplayer').setup({
'flashplayer': 'jwplayer/player.swf',
'id': 'playerID', // shouldn't this match one of the IDs in your HTML???
'width': '640',
'height': '580',
'provider': 'rtmp',
'streamer': 'rtmp://domain/recorder/_definst_',
'file': 'onSaveOk("+streamName+")'
});
var player=document.createElement(“div”);
player.innerHTML='';
player.id=“jwplayer”;
document.body.appendChild(player);//您可以决定将其添加到页面的位置
jwplayer('mediaplayer')。设置({
“flashplayer”:“jwplayer/player.swf”,
'id':'playerID',//这不应该与HTML中的一个id匹配吗???
“宽度”:“640”,
‘高度’:‘580’,
“提供者”:“rtmp”,
“拖缆”:rtmp://domain/recorder/_definst_',
'文件':'onSaveOk(“+streamName+”)'
});
您需要按顺序学习Javasscript和jQuery。为什么需要以这种方式动态编写脚本?看起来您可以只包含script@Yatrix因为变量onSaveOk(“+streamName+”)'在调用onSaveOk函数之前不会声明,因此需要在此之后运行。不,它会从flash元素中获取一个变量。您的引号非常混乱,是否确实要将整个内容封装在'
中,并且仍然在内部使用unescaped'
?