如何使用 Bookmarklet 修改页面中的功能?
How to modify a function in a page using Bookmarklet?
假设我有一个 HTML 页面,它有自己的功能 myFunction()
<!DOCTYPE html>
<html>
<body>
<p>Click the button to trigger a function that will output "Hello World" in a p element with id="demo".</p>
<button onclick="myFunction()">Click me</button>
<p id="demo"></p>
<script>
function myFunction() {
alert("stack overflow");
document.getElementById("demo").innerHTML = "Hello World";
}
</script>
</body>
</html>
我想像这样更改myFunction()
定义
function myFunction() {
//alert("stack overflow");
document.getElementById("demo").innerHTML = "Hello World";
}
使用 bookmarklet.So 有什么办法可以临时更改 def 吗?
我尝试使用 Chrome 控制台更改其定义并保持成功,但我想使用 bookmarklets.So 更改它,请帮助我。
因为它是全球性的,您可以在您的书签中执行此操作:
var oldFunction = myFunction;
myFunction = function() {
alert("Hello world!");
};
或者如果您将小书签包含在 scping 函数中(通常是个好主意),可能会将旧值存储在 window
属性 而不是本地变量中(这样您就可以访问它从另一个小书签稍后恢复):
window.oldFunction = myFunction;
myFunction = function() {
alert("Hello world!");
};
另一个小书签可以再次设置它:
myFunction = window.oldFunction; // or just = oldFunction if using a local var
实例:
function myFunction() {
alert("Original function");
}
document.getElementById("btn-override").addEventListener("click", function() {
window.oldFunction = myFunction;
myFunction = function() {
alert("New function");
};
}, false);
document.getElementById("btn-restore").addEventListener("click", function() {
myFunction = window.oldFunction;
}, false);
<input type="button" id="btn-call" value="Click to call myFunction" onclick="myFunction()">
<input type="button" id="btn-override" value="Click to override it">
<input type="button" id="btn-restore" value="Click to restore it">
试试这个:
javascript: myFunction = function(){console.log('c')}
假设我有一个 HTML 页面,它有自己的功能 myFunction()
<!DOCTYPE html>
<html>
<body>
<p>Click the button to trigger a function that will output "Hello World" in a p element with id="demo".</p>
<button onclick="myFunction()">Click me</button>
<p id="demo"></p>
<script>
function myFunction() {
alert("stack overflow");
document.getElementById("demo").innerHTML = "Hello World";
}
</script>
</body>
</html>
我想像这样更改myFunction()
定义
function myFunction() {
//alert("stack overflow");
document.getElementById("demo").innerHTML = "Hello World";
}
使用 bookmarklet.So 有什么办法可以临时更改 def 吗? 我尝试使用 Chrome 控制台更改其定义并保持成功,但我想使用 bookmarklets.So 更改它,请帮助我。
因为它是全球性的,您可以在您的书签中执行此操作:
var oldFunction = myFunction;
myFunction = function() {
alert("Hello world!");
};
或者如果您将小书签包含在 scping 函数中(通常是个好主意),可能会将旧值存储在 window
属性 而不是本地变量中(这样您就可以访问它从另一个小书签稍后恢复):
window.oldFunction = myFunction;
myFunction = function() {
alert("Hello world!");
};
另一个小书签可以再次设置它:
myFunction = window.oldFunction; // or just = oldFunction if using a local var
实例:
function myFunction() {
alert("Original function");
}
document.getElementById("btn-override").addEventListener("click", function() {
window.oldFunction = myFunction;
myFunction = function() {
alert("New function");
};
}, false);
document.getElementById("btn-restore").addEventListener("click", function() {
myFunction = window.oldFunction;
}, false);
<input type="button" id="btn-call" value="Click to call myFunction" onclick="myFunction()">
<input type="button" id="btn-override" value="Click to override it">
<input type="button" id="btn-restore" value="Click to restore it">
试试这个:
javascript: myFunction = function(){console.log('c')}