JavaScript停在ToString

时间:2014-01-21 16:29:30

标签: javascript scorm

那里有JavaScript专家的问题。我有一个SCORM(电子学习内容包),它在JavaScript中的一个非常具体的点上失败了。我已经设置了日志记录以查看它失败的位置,并且它实际上在我的一个日志中失败,因此就好像将对象转换为字符串一样会导致问题。我在这里错过了什么吗?

var w = window.open("", "popupWindow", "width=600, height=400, scrollbars=yes");
var $w = $(w.document.body);

function writelog(s){
    $w.append(s);
}


function SCOSetValue(nam,val){
    writelog("in SCOSetValue");
    writelog("name is "+nam.toString());
    writelog("value is "+val.toString());
    writelog("<br/>”);
...

val.toString()行,JS就停止了。任何人都有一个线索是怎么回事? val基本上看起来像下面这样。 undefined true true false 90 100 -1 -1 522 1 false 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

谢谢, 标记

1 个答案:

答案 0 :(得分:2)

如果您想使用值,您应该检查以确保它们存在。

function SCOSetValue(nam,val){

    nam = (typeof nam !== "undefined") ? nam : "nam not defined";
    val = (typeof val !== "undefined") ? val : "val not defined";

    writelog("in SCOSetValue");
    writelog("name is "+nam.toString());
    writelog("value is "+val.toString());
    writelog("<br/>”);

此外,如果您希望自己不必一直写toString(),只需将+ ""添加到变量即可。它将它强制为一个字符串。

function SCOSetValue(nam,val){

    nam = (typeof nam !== "undefined") ? nam + "" : "nam not defined";
    val = (typeof val !== "undefined") ? val + "" : "val not defined";

    writelog("in SCOSetValue");
    writelog("name is "+nam);
    writelog("value is "+val);
    writelog("<br/>”);