直到几天前,以下用户脚本(GreaseMonkey)才能完美运行。
// ==UserScript==
// @name OpenID prefill
// @include *://stackoverflow.com/users/login*
// @include *://meta.stackoverflow.com/users/login*
// @include *://superuser.com/users/login*
// @include *://meta.superuser.com/users/login*
// @include *://serverfault.com/users/login*
// @include *://meta.serverfault.com/users/login*
// @include *://askubuntu.com/users/login*
// @include *://meta.askubuntu.com/users/login*
// @include *://seasonedadvice.com/users/login*
// @include *://meta.seasonedadvice.com/users/login*
// @include *://crossvalidated.com/users/login*
// @include *://askdifferent.com/users/login*
// @include *://meta.crossvalidated.com/users/login*
// @include *://*.stackexchange.com/users/login*
// @include *://stackapps.com/*
// @exclude *://chat.stackexchange.com/*
// @exclude *://api.*.stackexchange.com/*
// @exclude *://data.stackexchange.com/*
// @exclude *://area51.stackexchange.com/*
// @version 1
// @grant none
// ==/UserScript==
(function ()
{
window.addEventListener('load', function()
{
document.getElementById('show-more-options').style = 'display: block;'; /* make visible */
document.getElementById('more-options-link').style = 'display: none;'; /* hide */
document.getElementById('openid_identifier').value = "https://my.url.tld/and/path/";
document.getElementById('submit-button').style = 'display: none;'; /* hide */
document.forms['login-form'].submit();
}, false);
})();
这个想法是这样的:我想用OpenID登录。我只是希望它默认显示OpenID选项,将URL预填充到我的OpenID提供程序,然后提交表单。
JavaScript不是我最强的技能,但我自己想出了这个。但是,这个脚本几天前停止了工作。
现在我找到了一些时间来研究它,我被这个元素的ID仍然相同的事实所困扰。所以我想知道破坏剧本会发生什么。
即使只显示OpenID表单也不再有效,也不会隐藏"更多选项链接"。
我不能排除其中一个Firefox更新也是导致破坏的原因。但是我该如何确定这个问题呢?
答案 0 :(得分:1)
我认为您可以使用Firebug或Chrome中的开发工具进行调查。 它会告诉你是否有javascript错误,你实际发布的内容(帖子的标题和正文)以及服务器的响应是什么。
您还可以跟踪浏览器和服务器之间的整个通信,并且可以复制浏览器发送的其中一条消息并使用curl重新执行(这在很多情况下都有帮助)。
答案 1 :(得分:0)
样式修改应将样式名称作为属性
document.getElementById('...')。style.display ='block';