如何在最新的Firefox中单击输入类型=“提交”?

时间:2010-12-28 21:05:03

标签: javascript firefox input click userjs

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

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

?单击此类按钮并使用鼠标重定向到另一页。

我的脚本所做的是使用Xpath搜索此类元素,然后使用简单的acceptbutton.click();

单击它们

它适用于Opera,Chrome和FF&lt; 3.6.13,但在最新版本中没有任何反应。我也尝试了fireEvent和eventFire函数,我在stackoverflow上找到了这些函数,这对我经常有帮助,但这次他们不能。

可能使用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;
            }
        }

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

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

我通过在Firefox 3.6.13的位置栏中粘贴javascript: document.getElementById('submit-button').click(); void(0);来提交此内容。这个想法归功于此:JavaScript auto-POST with NAME

答案 1 :(得分:0)

嗯,不会做一个简单的document.whatever formname.submit();诀窍呢?

答案 2 :(得分: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();