Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript在ToString停止_Javascript_Scorm - Fatal编程技术网

JavaScript在ToString停止

JavaScript在ToString停止,javascript,scorm,Javascript,Scorm,这是JavaScript专家的问题。我有一个SCORM(e-learning内容包),它在JavaScript中的一个非常特定的点上失败了。我已经设置了日志记录,以查看它在哪里失败,并且它实际上在我的一个日志中失败,因此它好像将对象转换为字符串导致了问题。我是不是遗漏了什么 var w = window.open("", "popupWindow", "width=600, height=400, scrollbars=yes"); var $w = $(w.document.body); f

这是JavaScript专家的问题。我有一个SCORM(e-learning内容包),它在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/>”);
...
var w=window.open(“,”弹出窗口“,”宽度=600,高度=400,滚动条=yes”);
var$w=$(w.document.body);
函数写入日志{
$w.s;
}
函数SCOSetValue(nam,val){
writelog(“在SCOSetValue中”);
writelog(“名称为”+nam.toString());
writelog(“值为”+val.toString());
写日志(“
”); ...
val.toString()
行中,JS刚刚停止。有人知道发生了什么吗?val基本上看起来如下所示。 未定义的真-真-假90 100-1-1 522 1假100 01 01 01 01 01 01 01 01 01 11 11 11 01 01 01 01 11 11 01 01 01 01 11 11 11 01 01 01 01 11 11 11 11 11 11 11

谢谢,
在任何时候使用值时都要进行标记,您应该检查以确保它们存在

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/>”);

控制台中报告的任何错误?如果
val
可以是
undefined
(这是我从问题末尾了解到的…),则不能调用
undefined.toString()
。解析器引发的具体错误是什么?val很可能为null或未定义,导致引发ReferenceError或TypeError。。。
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/>”);