gpt4 book ai didi

javascript - Uncaught ReferenceError : is not defined

转载 作者:行者123 更新时间:2023-11-28 01:00:34 25 4
gpt4 key购买 nike

我正在编写一个用户脚本,到目前为止一切正常,就在我单击应用了 onClick 属性的按钮时,控制台不断告诉我Uncaught ReferenceError: SB_Change is not Defined 并且函数 SB_Change(what) 将不会被执行。

代码:

window.addEventListener('load', function() {
var but1 = document.createElement("BUTTON");
var t1=document.createTextNode(" + ");
but1.style.width = "16px";
but1.style.height = "16px";
but1.appendChild(t1);
but1.setAttribute('onclick','SB_Change("+")');
// -
var but2 = document.createElement("BUTTON");
var t2=document.createTextNode(" - ");
but2.appendChild(t2);
but2.style.width = "16px";
but2.style.height = "16px";
but2.setAttribute('onclick','SB_Change("-")');
// -
var SB_text = document.getElementById("shoutbox").getElementsByTagName("h3")[0];
SB_text.innerHTML = "Shoutbox ";
SB_text.appendChild(but1);
SB_text.appendChild(but2);

function SB_Change(type){
var H = document.getElementById("sbPosts").maxHeight;
switch(type){
case "+":
H = "800px";
break;
case "-":
H = "400px";
break;
}
}
}, false);

最佳答案

两个问题:

  1. 函数SB_Change在加载函数范围内定义。当您单击链接时,此范围不再存在。
    将定义移至加载处理程序外部,如下所示:

    window.addEventListener ('load', function () {
    ... ...
    }, false);

    function SB_Change (type){
    ... ...
    }
  2. 否则,此问题与 Uncaught ReferenceError: function is not defined with onclick 重复。 .
    用户脚本是沙盒的,除非 (a) 您故意注入(inject)代码或 (b) 在支持该模式的引擎上使用 @grant none 模式。 (除非绝对必要,否则不推荐使用这两种模式。)

    不要使用onclick(永远不要!)。请参阅重复的问题。

关于javascript - Uncaught ReferenceError : <my userscript-defined function> is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25667466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com