在内容级别使用谷歌浏览器扩展程序时未定义DP_jQuery_ *
我正在开发谷歌Chrome扩展程序。 我试图在现有网页的jquery-ui对话框中使用jquery-ui datepicker(内容级别)
像这样: 截图
当我点击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;})
这可能会保证范围的安全
你怎么看?
我的haxorz技能再次占了上风!
通过插入以下内容在第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()
会解决这个问题。
我知道这很难看我知道它可以用更少的线来完成但是这只是暂时的,直到jquery ui团队修复了这个