2008-11-06 3 views
3

Я только что потратил половину своего, чтобы узнать, что вызвало сообщение об ошибке «Ci не определено» в моем JavaScript-коде. Я наконец-то нашел причину:JavaScript: Ci не определен

Это должно быть (Jquery):

$("asd").bla(); 

Это было:

("asd").bla(); 

(знак доллара пропал без вести)

Теперь после того, как проблема решена, Я хотел бы понять само сообщение: что означает Firefox, когда он говорит мне, что «Ci» не определен. Что такое «Ци»?


Update: Я использую последнюю версию Firefox (3.0.3).

Для воспроизведения, используйте этот HTML-код:

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

Для того, чтобы понять: я знаю, что вызвало сообщение об ошибке. Я просто хотел бы знать, что Firefox пытается сказать мне с помощью «Ci» ...

ответ

3

Я не знаю, какую версию FF вы используете, но независимо от того, что сообщение, вероятно, ссылается на то, что bla() не является функцией, доступной для объекта String. Поскольку вам не хватает $, что означает, что вам не хватает функции, ("asd") будет оценивать строку, а затем интерпретатор JavaScript попытается вызвать bla() на этом объекте. Так что, если вы имели следующий код в вашем проекте:

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

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

Таким образом, возможно, что Ci некоторый внутренний символ Firefox, который просто относится к идее функции. Это мое предположение, я полагаю, вы будете нуждаться в том, что кто-то знает что-то о внутренностях Firefox, чтобы получить лучший ответ на этот вопрос ...


UPDATE: Я бег вашего примера кода в точной та же версия FF, как вы, но он сообщает об ошибке, как:

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

Возможно, у вас есть расширение/плагин в беге, что делает что-то с этим? Может быть, сценарий Greasemonkey или что-то еще?

+0

Плагин: может быть ... Greasemonkey: Он ничего не должен делать на этом хозяине ... Но кто знает ...;) – BlaM 2008-11-06 18:38:25

-3

Предполагая, что это CodeIngiter, он не может найти файл js.

+0

Я не использую CodeIgniter. – BlaM 2008-11-06 18:02:02

2

Джейсон, кажется, прав. Многие плагины (например, Firebug, Geode) используют Ci в качестве ярлыка:

const Ci = Components.interfaces; 

Так плагины, кажется, вызывает это сообщение об ошибке странного.

Смежные вопросы