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

Javascript console message not printed when in an assigned function

本文关键字:打印 Javascript 控制台 消息 函数      更新时间:2023-09-26

我有下面的代码。它在页面的头部正确地注入脚本。但是为什么"createReview called"的信息从来没有打印到开发者控制台?

p。我不确定这个结构在技术上叫什么,所以我就叫它"赋值函数"。MyJSObject.createReview = function (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调用"消息被打印到控制台作为一个错误(我使用console.error,因为已经有很多由其他应用程序创建的日志线,我不想要寻找我的消息。console.log也没有显示任何东西(btw):

MyJSObject.createReview({"widgetType":1});

在控制台中显示为错误。因为它是。error而不是。log

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

BTW你有一个错误在这一行b.setAttribute("src", a); "a是未定义的"

在这个JSFIDDLE上试试F12

如果过滤器不是问题,因为它适用于我,请尝试chrome金丝雀,这发生在我一次,并在chrome下一个版本解决。

您确定您正确注册了回调到所需的单击事件吗?

通过打印一些东西来检查

$('#buttonToClick').click(function(){
    console.log("Check Click");
    myJSObject.createReview(..);
});

如果你在控制台中找不到这意味着你根本没有调用createReview方法

  1. 你可以在不同的浏览器上尝试,看看是否有错误。
  2. 也许在你的包含中,有人覆盖了console.log和console.error。例句: console.log = function(){//donothing} 在这种情况下,应该将函数体输出到dom,以确保没有人修改它。同上的:

document.getElementById('someJunkDiv').innerHTML = console.log.toString()