在内容级别与google chrome扩展一起使用时,未定义DP_jQuery_*

在内容级别与google chrome扩展一起使用时,未定义DP_jQuery_*,jquery,dialog,datepicker,google-chrome-extension,Jquery,Dialog,Datepicker,Google Chrome Extension,我正在开发一个谷歌浏览器扩展。 我试图在现有网页(内容级别)的jquery ui对话框中使用jquery ui日期选择器 像这样: 当我点击datepicker小部件的任何按钮时,我得到“DP_jQuery_1274168529407未定义”,我认为这是因为jQuery datepicker在html上添加了: onclick="DP_jQuery_1274192751418.datepicker._selectDay('#new\\-app\\-date',4,2010, this);retu

我正在开发一个谷歌浏览器扩展。 我试图在现有网页(内容级别)的jquery ui对话框中使用jquery ui日期选择器

像这样:

当我点击datepicker小部件的任何按钮时,我得到“DP_jQuery_1274168529407未定义”,我认为这是因为jQuery datepicker在html上添加了:

onclick="DP_jQuery_1274192751418.datepicker._selectDay('#new\\-app\\-date',4,2010, this);return false;"
这意味着我必须更改datepicker库以避免修改html,而是在每个obj上附加一个事件,如下所示:

.click(function(){DP_jQuery_1274192751418.datepicker._selectDay('#new\\-app\\-date',4,2010, this);return false;})
这可能会保证范围的安全


你觉得怎么样?

我的哈克索兹技能再次占上风

通过插入以下内容修改第8307行函数_updateDatepicker中jquery-ui.js的代码:

.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()
这将解决这个问题

我知道这很难看 我知道它可以用更少的线来完成
但这只是暂时的,直到jQueryUI团队解决了这个问题

我假设您正在使用脚本注入将库和插件引入页面?如果没有,您可能会遇到上下文问题。yeap类似这样的内容:“content_scripts”:[{“all_frames”:true,“matches”:[“*”],“css”:[“jquery-ui-1.8.1.custom.css”,“background.css”],“js”:[“jquery-1.4.2.js”,“jquery-ui-1.8.1.custom.js”,“jquery-ui-content.hack.js”,“content.js”],“run_at”:“document_end”},我已经将您的方法应用于jquery-ui-1.8.10.js的8784行,它允许注入的日期选择器工作,但控制台显示了以下错误:Uncaught SyntaxError:invalical return语句