油猴如何覆盖原来的function
本帖最后由 大药科技 于 2021-7-9 15:40 编辑html源码如下,我想使用油猴来改变原先openWindow函数由原来的在小窗口打开改为浏览器新标签打开,但是我怎么改都不行,不放在(function(){****})()也不行,望高手指点指点!
```
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试页</title></title>
<script>
function openWindow(url, width, height) {
if (width == '') {
width = screen.width - 20;
}
if (height == '') {
height = screen.height - 120;
}
var win = window.open(url, '', 'height=' + height + 'px,width=' + width
+ 'px,resizable=yes,toolbar:0,menubar:0,scrollbars=1');
return win;
}
</script>
</head>
<body>
<a href="javascript:void(0);" onclick="javascript:openWindow('https://baidu.com','','')">综合办理</a>
</body>
</html>
```
油猴代码如下:
```
// ==UserScript==
// @name 广西医疗基层window.open改写
// @namespace 6666666666
// @include***************
// @run-at document-idle
// ==/UserScript==
(function(){
function openWindow(url, width, height) {
if (width == '') {
width = screen.width - 20;
}
if (height == '') {
height = screen.height - 120;
}
// if (url.indexOf('?') > 0) {
// url += "&username=" + cjkEncode(user_username);
// } else {
// url += "?username=" + cjkEncode(user_username);
// }
var win = window.open(url);
return win;
}
})();
```
声明unsafeWindow,然后unsafeWindow.openWindow=function(){xxxxx}
这样试试 (function(){
function openWindow(url, width, height) {
if (width == '') {
width = screen.width - 20;
}
if (height == '') {
height = screen.height - 120;
}
// if (url.indexOf('?') > 0) {
// url += "&username=" + cjkEncode(user_username);
// } else {
// url += "?username=" + cjkEncode(user_username);
// }
var win = window.open(url);
return win;
}
window.openWindow=openWindow
})(); 李恒道 发表于 2021-7-9 19:58
(function(){
function openWindow(url, width, height) {
if (width == '') {
{:4_110:}可以 可以 ,这是作用域在作怪吗。。。 王一之 发表于 2021-7-9 16:09
声明unsafeWindow,然后unsafeWindow.openWindow=function(){xxxxx}
这样试试
{:4_108:}试了站长大大的代码 确实可以你这个应该也可以,谢谢指点! 大药科技 发表于 2021-7-9 23:43
可以 可以 ,这是作用域在作怪吗。。。
不知道怎么形容....我没研究过直接声明函数的替换问题,一般来说都要对挂载的位置函数进行替换的 李恒道 发表于 2021-7-10 00:31
不知道怎么形容....我没研究过直接声明函数的替换问题,一般来说都要对挂载的位置函数进行替换的 ...
我都不知道还要挂载到对应函数覆盖才行,我看网上的教程都是说直接声明相同函数就行了。。。
页:
[1]