JavaScript: Ci не определен

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

Должно быть (jQuery):

$("asd").bla();

Это было:

("asd").bla();

(Знак доллара пропал)

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


Обновлять: Я использую текущую версию Firefox (3.0.3).

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

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

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

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
0
1 480
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

Ответ принят как подходящий

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

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

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

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


ОБНОВЛЕНИЕ: я запускаю ваш пример кода в той же версии FF точный, что и вы, но он сообщает об ошибке как:

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

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

Плагин: Может быть ... Greasemonkey: Он не должен ничего делать на этом хосте ... Но кто знает ...;)

BlaM 06.11.2008 21:38

Кажется, ты прав. Ci используется во многих плагинах как ярлык для «Components.interfaces».

BlaM 06.11.2008 21:43

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

const Ci = Components.interfaces; 

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

Другие вопросы по теме