javascript - 每当选择特定的 <选项> 时,就从 Greasemonkey 脚本更改页面

标签 javascript jquery greasemonkey

在使用 jQuery 和“tamtam”编写 GreaseMonkey 脚本时,我的脑海中出现了一个问题。

有一个页面(我无法编辑)有 <select>具有四个选项的元素。选项 2 已预先选择。

<select id="idname" name="namename">
  <option>Option1</option>
  <option selected="selected">Option2</option>
  <option>Option3</option>
  <option>Option4</option>
</select>

现在我想在选择 Option1 时调用脚本。 Option1 通向我想要插入脚本的另一个站点。

我该如何写这样的内容:

if (Option1 is selected) {
    perform the script
}

像下面这样的东西可以工作吗?

if(document.getElementById("idname").getElementsByTagName("option")[0].onselect == true){
    perform the script 
}

如果没有,您可以发布一个引用资料来帮助我吗?

编辑

我能够创建一个函数和一个事件处理程序。

function myCompute(Event) {
    with (this) {  
        var myTest = value;

        if (value == "option1") {
            $("#tabelle").show();
        }

        else {
            $("#tabelle").hide();
        }
    }
}

事件处理程序:

$("#option-type").change (myCompute);
$("#tabelle").hide();

其工作原理如下: 通过选择选项 2,3 或 4,表格将被隐藏。通过选择选项 1,将显示表格。 通过访问该站点,大多数情况下都会选择选项 2,并且不会显示任何内容。 现在我得到的情况是,通过访问该站点选择了选项 1,并且也没有出现表格。我的想法是,当预选 option1 时应该显示该表。我认为缺少 EventHandler。 就像你一样,布洛克·亚当斯说。

$("#option-type option:first").select (myCompute);
$("#option-type").change (myCompute);
$("#tabelle").hide();

如果我将函数与 $("#tabelle").hide(); 绑定(bind),该表从一开始就是隐藏的。通过将选项更改为 option1,将显示该表。如何在选择选项 1 时显示表格以及在选择选项 2、3、4 时如何隐藏表格?

尝试option:first导致“未知伪元素”错误。

最佳答案

更新:

好的,如果我理解修改后的问题,代码现在可以按预期工作,除非选项 1 按选择启动。 (PS,应该编辑给定代码的 ID 以匹配。)

如果这是真的,那么只需更改这一行:

$("#tabelle").hide();

.
对此:

if ($("#option-type")[0].selectedIndex == 0 )
    $("#tabelle").show();
else
    $("#tabelle").hide();
<小时/>

在 Greasemonkey 中,由于沙箱保护,您无法以这种方式设置事件处理程序。请参阅Common Pitfalls in Greasemonkey .
此外,使用 jQuery,有更简单的方法来选择该元素。

类似于: $("#idname option:first").select (YourEventHandler) 应该可以。

地点:

function YourEventHandler (Event)  
{
    //YOUR CODE HERE
    //Note: Event is a variable passed automatically to all event handlers, you often just ignore it.
}

Handy jQuery reference .

关于javascript - 每当选择特定的 <选项> 时,就从 Greasemonkey 脚本更改页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3179319/

相关文章:

javascript - 将 HTML 字符串转换为 DOM 元素?

javascript - Bootstrap 表格和宽度控件

javascript - 油脂猴循环的javascript

javascript - 在 Electron BrowserWindow 中设置最大和最小尺寸

javascript - Jquery 粘性标签

javascript - 如何从 h 轴标签与谷歌条形图交互

javascript - 第一次点击链接不会触发 jQuery,但再次点击它会触发两次

javascript - after() 显示解析后的 html

javascript - GM_setClipboard(和其他 GM 函数)在 Firefox 中给出错误,但在 Chrome/Tampermonkey 中没有给出错误?

facebook - 使用异常内容加载时不执行 Greasemonkey 脚本