0

我为 Facebook 制作了非常受欢迎的 UserJS,但从 FF 3.6.13 版本开始它不起作用(对于那个版本)。我只是不知道如何单击这些元素:

<input value="Accept" type="submit" name="something... asdf" />

? 用鼠标单击这些按钮会重定向到另一个页面。

我的脚本所做的是用 Xpath 搜索这些元素,然后用简单的方法单击它们acceptbutton.click();

它在 Opera、Chrome 和 FF <3.6.13 上运行良好,但在最新版本中没有任何反应。我还尝试了我在 stackoverflow 上找到的 fireEvent 和 eventFire 函数,它们经常帮助我,但这次他们不能。

可能使用 JQuery 的click()函数会有所帮助,但我不能在我的 userjs 中使用 jquery。

我也尝试过acceptbutton.form.submit();,但它会将我重定向到错误的页面。

编辑 :

好的,我正在添加代码片段

                 var acceptbuttons = xpath(document,'//label[@class="uiButton uiButtonConfirm"]/input');
        for (var i = 0; i < acceptbuttons.snapshotLength; i++) { 
        //will search for particular accept button
            var acceptbutton = acceptbuttons.snapshotItem(i);
            var acceptbuttonName = acceptbutton.getAttribute("name");

            if(acceptbuttonName.indexOf(urlPart)!=-1)
            {
            // it founds button but function below do nothing in FF
            acceptbutton.click();return;
            }
        }

谢谢你的帮助!

4

3 回答 3

1

可以在最新的Firefox中使用click()提交按钮的方法。你还有别的问题。您是否在表单上有阻止点击工作的 onsubmit 事件,或者您有错误的按钮?

javascript: document.getElementById('submit-button').click(); void(0);我通过粘贴在 Firefox 3.6.13 的地址栏中提交了此文件。这个想法的功劳在这里:JavaScript auto-POST with NAME

于 2010-12-29T23:40:02.317 回答
0

嗯,不会做一个简单的 document.whatever_formname.submit(); 做这个把戏?

于 2010-12-28T21:09:39.380 回答
0

如果acceptbutton.form.submit();由于value="Accept"未发送零件而无法正常工作,为什么不添加隐藏输入以便它可以呢?

var hiddenInput = document.createElement('input');
hiddenInput.type = 'hidden';
hiddenInput.name = acceptbutton.name;
hiddenInput.value = acceptbutton.value;
acceptbutton.form.appendChild(hiddenInput);
acceptbutton.form.submit();
于 2010-12-28T21:17:14.623 回答