Javascript文档。编写另一个脚本

Javascript文档。编写另一个脚本,javascript,escaping,Javascript,Escaping,因此,我尝试使用document.write为文档编写另一个脚本。以下是我的函数代码: function onSaveOk(streamName,streamDuration,userId,cameraName,micName,recorderId){ //alert("onSaveOk("+streamName+","+streamDuration+","+userId+","+cameraName+","+micName+")"); //the us

因此,我尝试使用document.write为文档编写另一个脚本。以下是我的函数代码:

    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
'