Javascript控制台消息在指定函数中未打印

Javascript控制台消息在指定函数中未打印,javascript,console.log,Javascript,Console.log,我有下面的代码。它将脚本正确地注入页面的头部。但是为什么“createReview调用”消息从未打印到开发人员控制台 我不确定这个结构在技术上叫什么,所以我把它叫做“赋值函数”。 MyJSObject.createReview=函数(c) 在页首: if (typeof MyJSObject === "undefined" || !MyJSObject) {var MyJSObject = {};} MyJSObject.headLoc = document.getElementsByTagNa

我有下面的代码。它将脚本正确地注入页面的头部。但是为什么“createReview调用”消息从未打印到开发人员控制台

我不确定这个结构在技术上叫什么,所以我把它叫做“赋值函数”。
MyJSObject.createReview=函数(c)

在页首:

if (typeof MyJSObject === "undefined" || !MyJSObject) {var MyJSObject = {};}
MyJSObject.headLoc = document.getElementsByTagName("head").item(0);

MyJSObject.createReview = function (c) {
    console.error('createReview called');
    MyJSObject.widgetType = c.widgetType;
    var a = "https://www.example.com/api/getcompanyreviewdetails/?id=2&callback=MyJSObject.writeReviewsCallback";
    var b = document.createElement("script");
    b.setAttribute("type", "text/javascript");
    b.setAttribute("src", a);
    MyJSObject.headLoc.appendChild(b);

};
然后点击一个按钮,我调用这个函数,之后我希望“createReview called”消息作为一个错误打印到控制台(我使用
console.error
,因为其他应用程序已经创建了很多日志行,我不想查看我的消息。
console.log
也不显示任何内容):


我确实在您的控制台中显示为错误。b因为它是.error而不是.log

也许您过滤了控制台中的日志而不是错误

顺便说一句,这一行有一个错误
b.setAttribute(“src”,a)“a未定义”

试试F12


如果过滤器不是问题所在,并且因为它对我有效,请尝试chrome canary,这在我身上发生过一次,并且在chrome下一版本中得到了解决。

您确定正确注册了对所需点击事件的回调吗

通过在那里打印一些东西来检查

$('#buttonToClick').click(function(){
    console.log("Check Click");
    myJSObject.createReview(..);
});
如果在控制台中找不到,则表示根本没有调用createReview方法

  • 您可以在不同的浏览器上尝试,看看是否有bug
  • 可能在您的include中,有人重写了console.log和console.error。 例如:
    
    console.log=function(){//donothing}
    
    在这种情况下,应该将函数体输出到dom,以确保没有人修改它。 同上:
  • 
    document.getElementById('someJunkDiv')。innerHTML=console.log.toString()
    

    console.log()
    ?其余代码是否工作(即是否加载文件)?它是否将其他内容打印到控制台?当我运行它时,它会为我调用,并抛出一个错误,因为未定义
    a
    。似乎对我有效:尽管还有其他控制台错误。可能是环境中的某些因素造成了中断。请参阅我的更新帖子,其中声明了变量
    a
    。我会过滤错误…什么都不会出现。有什么想法吗@valyreangroup
    console.error
    的工作原理与
    console.log
    类似,只需打印到不同的输出窗口(也请参阅我的文章)。欢迎所有建议!:)请参阅我声明了变量a的更新帖子。我会过滤错误…什么都不会出现。有什么想法吗?@Flo更新了我的答案,请尝试金丝雀和更新Ustanks,我在其他几种浏览器(Edge、Firefox、safari)中尝试过,但在那里也不起作用。我不认为这与Chrome有关,我认为这里还发生了其他事情……但是:)谢谢。是的,我已经尝试了
    console.error('switch clicked,now calling createreview')在调用createReview函数之前,该行确实会打印到控制台。这很奇怪,因为当我在Chrome开发控制台的
    createReview
    行中添加断点时,它从未中断。还有其他建议吗?
    $('#buttonToClick').click(function(){
        console.log("Check Click");
        myJSObject.createReview(..);
    });