在内容级别与google chrome扩展一起使用时,未定义DP_jQuery_*
我正在开发一个谷歌浏览器扩展。 我试图在现有网页(内容级别)的jquery ui对话框中使用jquery ui日期选择器 像这样: 当我点击datepicker小部件的任何按钮时,我得到“DP_jQuery_1274168529407未定义”,我认为这是因为jQuery datepicker在html上添加了:在内容级别与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
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语句