DP_jQuery_ * не определяется при использовании с расширением Google Chrome на уровне содержимого - PullRequest
3 голосов
/ 18 мая 2010

Я разрабатываю расширение Google Chrome.Я пытаюсь использовать средство выбора даты jquery-ui в диалоговом окне jquery-ui существующей веб-страницы (уровень содержимого)

Примерно так: Снимок экрана

Я получаю "DP_jQuery_1274168529407не определяется ", когда я нажимаю на любую кнопку виджета datepicker, и я думаю, что это потому, что jquery datepicker добавляет в html:

onclick="DP_jQuery_1274192751418.datepicker._selectDay('#new\\-app\\-date',4,2010, this);return false;"

Это означает, что мне придется изменить библиотеку datepicker, чтобы избежать измененияhtml, но лучше прикрепить событие к каждому объекту, как это:

.click(function(){DP_jQuery_1274192751418.datepicker._selectDay('#new\\-app\\-date',4,2010, this);return false;})

Это, вероятно, сохранит область видимости

Что вы думаете?

1 Ответ

3 голосов
/ 20 мая 2010

Мои навыки haxorz снова возобладали!

Изменение кода jquery-ui.js в функции _updateDatepicker в строке 8307 путем вставки:

.find('[onclick]').each(function(){
    var command = $(this).attr('onclick')+'';
    $(this).removeAttr('onclick');
    command = command.replace("function onclick(event) {","");
    command = command.substr(0, command.length-2);
    $(this).click(function(){eval(command);});
})
.end()

Решит эту проблему.

Я знаю, это уродливо, я знаю, что это можно сделать с меньшим количеством строк, но это временно, пока команда jquery ui не исправит это

...