2008-11-06 8 views
3

JavaScript 코드에서 "Ci is not defined"오류 메시지의 원인을 찾기 위해 절반을 보냈습니다. 문제를 해결 한 후JavaScript : Ci가 정의되지 않았습니다.

("asd").bla(); 

(달러 기호 사라 실종) 이제

:

그것은해야한다 (jQuery를) :

$("asd").bla(); 

그것이 드디어 이유를 발견 메시지 자체를 이해하고 싶습니다. 파이어 폭스는 "Ci"가 정의되어 있지 않다고 말하면 무엇을 의미합니까? "Ci"가 무엇입니까?


업데이트 : 나는 파이어 폭스의 최신 버전 (3.0.3)를 사용하고 있습니다. 재생하려면

, 그냥이 HTML 코드를 사용 :

<html><head><title>test</title> 
<script> 
("asd").bla(); 
</script> 
</head><body></body></html> 

을하려면 분명히 : 나는 오류 메시지의 원인을 알고있다. 나는 파이어 폭스가 "Ci"에 대해 무엇을 말하려고하는지 알고 싶다 ...

답변

3

사용중인 FF의 버전을 알 수는 없지만 메시지는 아마도 bla()이 String 개체에서 사용할 수있는 기능이 아님을 나타냅니다. $이 누락되었으므로 함수가 누락되었다는 의미이므로 ("asd")은 문자열로 평가되고 JavaScript 인터프리터는 bla()을 호출하려고합니다.

String.prototype.bla = function() {}; 

// now this next line will execute without any problems: 
("asd").bla(); 

그래서, Ci 단순히 함수의 개념을 의미 일부 내부 파이어 폭스의 상징이라고 할 수있다 : 그래서, 만약 당신이 프로젝트에 다음 코드를했다. 즉, 내가 ... 당신이이 질문에 좋은 답변을 얻을 수있는 파이어 폭스의 내부에 대해 뭔가를 알고있는 사람이 필요하려고 생각 내 생각이다


업데이트 : 나는 정확한에서 예제 코드를 실행하고 FF의 동일한 버전은 당신이 있지만,이 같은 오류를보고 같이

아마도 당신이 확장/플러그인 실행이 함께 무언가를 가지고

Error: "asd".bla is not a function
Source File: file:///C:/test.html
Line: 3

? 어쩌면 그리스 몽키 대본이나 뭐?

+0

플러그인 : 아마도 ... 그리스 몽키 : 그 호스트에서 아무 것도해서는 안되지만 누가 알 겠어 ...;) – BlaM

+0

당신은 옳은 것 같습니다. Ci는 "Components.interfaces"에 대한 바로 가기로 많은 플러그인에서 사용됩니다. – BlaM

-3

그것이 CodeIgniter라고 가정하면 js 파일을 찾을 수 없다.

+0

저는 CodeIgniter를 사용하지 않습니다. – BlaM

2

제이슨이 옳은 것 같습니다. 많은 플러그인 (예를 들어, 방화범, 오드는) 바로 가기로 CI를 사용

const Ci = Components.interfaces; 

그래서 플러그인이 이상한 오류 메시지가 발생할 것으로 보인다.

관련 문제