«Uncaught SyntaxError: неожиданный токен (», но нет ошибки - PullRequest
1 голос
/ 13 декабря 2011

Я пишу простой пользовательский скрипт, который даст управление навигацией с помощью кнопки возврата назад, как в Windows (особенно для пользователей Linux) для браузера Chromium.

Этот сценарий работал , затем я внес в него несколько изменений (очень простые вещи, комментирование, создание вкладок, создание красивого), и теперь я получаю эту ошибку:

Uncaught SyntaxError: неожиданный токен (

в этой строке

document.head.appendChild(script);

Скрипт находится здесь - я тянуЯ стараюсь понять это.

Скрипт действительно применим только к хрому, так как ff дает вам опцию конфигурации для включения этой функции .. - Chromium 15.0.874.106 (Developer Build 107270) Ubuntu 11.10

Редактировать если кто-то может сказать мне, почему это не работает, было бы замечательно

EmbedCodeOnPage("(function() {" + fn.toString() + "})();"); // fails
EmbedCodeOnPage("(" + fn.toString() + ")()"); // works.

Ответы [ 3 ]

2 голосов
/ 13 декабря 2011

Я полагаю, что фактическая ошибка здесь:

function EmbedFunctionOnPageAndExecute(fn) {
    EmbedCodeOnPage("(function() {" + fn.toString() + "})();");
}

fn.toString уже собирается отформатировать вашу функцию следующим образом:

function () { /* code here */ }

Итак, вы закончитес этим:

(function() { function () { /* code here */ } })();

Это явно не то, что вы хотите.Вы хотите выполнить внутреннюю функцию.

1 голос
/ 13 декабря 2011

потому что вы просто добавляете анонимную функцию и не выполняете ее

измените строку 46 и добавьте ()

0 голосов
/ 04 декабря 2012

У меня была такая же проблема, даже с простой функцией. Это может быть связано с неправильным синтаксисом самого определения функции, особенно с переходом с java на javascript.

если я объявляю функцию с определением объекта, таким как CalcualTax () {// некоторая логика;} и запускаю, я получаю «SyntaxError: Unexpected token (» - это связано с тем, что объявление функции имеет неправильный формат / Синтаксис. Ошибка вводит в заблуждение, однако, изменяя ее на calcTax: function () {// некоторая логика;} решает проблему. Надеюсь, это поможет. Спасибо.

...