Javascript Monkey补丁jquery函数内容
提前谢谢你的帮助 我试图修补一个现有的javascript函数,以便它的一行指向一个新的位置。只需重新定义函数就很容易了,除非它是从包含动态内容的服务器端代码中呈现的Javascript Monkey补丁jquery函数内容,javascript,jquery,Javascript,Jquery,提前谢谢你的帮助 我试图修补一个现有的javascript函数,以便它的一行指向一个新的位置。只需重新定义函数就很容易了,除非它是从包含动态内容的服务器端代码中呈现的 function GoPrint() { $.cookie('edit_child','on',{expires:28,path:'/'}); //Dynamically created (edit child could be off) window.open('../../Common/Output/HTMLt
function GoPrint() {
$.cookie('edit_child','on',{expires:28,path:'/'}); //Dynamically created (edit child could be off)
window.open('../../Common/Output/HTMLtoPDF.aspx','print'); //Always static, need to change this call.
}
在我的示例中,创建cookie的第一行是在服务器端动态创建的,因此属性可以设置为off
我需要更改window.open以调用其他页面,而不是htmltopdf页面
尽管令人讨厌,但我想在HTMLtoPDF文本上用替换来重新定义函数,以指向新页面
我已经在下面开始了,但不知道如何获取函数的现有内容来更改它
function($){
var _oldPrint = $.fn.GoPrint;
$.fn.GoPrint = function(arg1,arg2){
return _oldPrint.call(this,'',);
};
})(jQuery);
有什么建议吗?一种方法是在旧函数上调用
toString
,用新的URL替换旧的URL,然后评估结果,但必须考虑到安全问题
纯粹就安全性而言,更安全的方法是对窗口进行猴子补丁。在GoPrint
的猴子补丁中打开函数
function($) {
var _oldPrint = $.fn.GoPrint;
$.fn.GoPrint = function(arg1, arg2) {
var _oldopen = window.open;
window.open = function() {
_oldopen.call('YOUR_URL_HERE', 'print');
};
return _oldPrint.call(this);
window.open = _oldopen;
};
})(jQuery);