2016-11-01 3 views
3

아래 코드가 있습니다. 어떤 스크립트가 페이지의 머리 부분에 올바르게 삽입됩니다. 그러나 "createReview called"메시지가 개발자 콘솔에 인쇄되지 않는 이유는 무엇입니까?할당 된 함수에서 Javascript 콘솔 메시지가 출력되지 않습니다.

ps. 나는이 구조가 기술적으로 불려지는지 확신 할 수 없기 때문에 그냥 "할당 된 함수"라고 불렀다. 페이지의 머리에서 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"을 기대 후이 함수를 호출 클릭 메시지 (오류로 콘솔에 인쇄 할 다른 앱에서 생성 loglines 많은 alreayd있을 때부터 console.error 사용하고 난 내 메시지를보고 싶지 않아 console.log가) BTW 중 아무것도 표시되지 않습니다.

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

'을 console.log()'? – TheValyreanGroup

+0

나머지 코드는 작동합니까? 즉 파일을로드합니까? 그것은 콘솔에 다른 것을 인쇄합니까? – Bergi

+0

'a'가 정의되어 있지 않으므로 실행하면 오류가 발생합니다. – epascarello

답변

0

나는 당신의 C에 나타납니다 않습니다 깔창 오류로.b 오류가 없습니다. 오류가 없습니다 .log

로그를 필터링했는데 오류가 아닌지 필터링했는지 확인하십시오. BTW

당신은 필터가 문제가 아닌 경우이 JSFIDDLE

시도의 F12의 "가 정의되어 있지 않습니다"이 라인 b.setAttribute("src", a);에 오류가 있고, 그것은 나를 위해 작동하기 때문에, 크롬 카나리아를 시도하십시오 , 이것은 나에게 한 번 일어 났고 크롬 다음 버전에서 해결되었습니다.

+0

변수가 선언 된 내 업데이트 된 게시물을 참조하십시오. 그리고 나는 오류가있을 때 필터를한다. 아무 것도 나타나지 않는다. 어떤 아이디어? – Flo

+0

@Flo가 내 대답을 업데이트했습니다. 카나리아를 시도해보고 업데이트하십시오. –

+0

고마워, 다른 브라우저 (Edge, Firefox, Safari)에서 시도해 보았지만 작동하지 않습니다. 나는 그것이 크롬과 관련이 있다고 생각하지 않는다, 나는 여기에 다른 것이 있다고 생각한다. 그러나 무엇 : – Flo

0

원하는 클릭 이벤트에 대한 콜백을 올바르게 등록 했습니까?

확인하는 것이 뭔가를 인쇄하여 너무

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

당신은 모든

+0

고마워. 예, createReview 함수를 호출하기 직전에'console.error ('switch clicked, 지금 createreview'를 호출합니다.) '라고 시도했습니다. 그 행은 콘솔에 인쇄됩니다. 그것은 이상한 것입니다. 왜냐하면 Chrome 개발자 콘솔에 breakpoint를 추가 할 때'createReview' 내의 줄에 중단 점이 추가되지 않기 때문입니다. 다른 제안? – Flo

0
  1. 당신은 그것을 시도 할 수있는 createReview 메소드를 호출하지 않는 것을 의미 콘솔에서 그것을 찾을 수없는 경우 다른 브라우저에서 버그가 없는지 확인하십시오.
  2. 아마도 포함에 console.log 및 console.error를 덮어 쓴 사람이있을 수 있습니다. 예 : console.log = function(){//donothing} 그런 경우 아무에게도 변경되지 않도록 dom에 함수 본문을 출력해야합니다. 뎀 :

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

관련 문제