页面加载后的 Javascript 运行函数

标签 javascript opera onload

我正在尝试用 Javascript 创建一个小的自动化脚本,我想使用 Opera 的用户脚本功能来定义要运行的外部脚本,并在网站上运行。我以前使用此功能来运行我用外部站点编写的脚本,效果很好。

我需要等到页面加载后脚本才能运行,但我似乎无法让它工作。目前的代码是:

if (addEventListener in document) { // use W3C standard method
    document.addEventListener('load', meerfirst(), false);
} else { // fall back to traditional method
    document.onload = meerfirst();
}

function meerfirst(){
    nameForm = document.forms['aspnetForm'];
    nameForm.elements('ctl00$CPH1$NewQuoteView$TitlesView$DropDownListTitles').value = 'MR:TRUE:MR';
    nameForm.elements('ctl00$CPH1$NewQuoteView$TextBoxFirstName').value = 'James';
 }

这是我自己的函数,添加了通过此处另一个问题找到的 if 语句。我也试过window.onload,还是不行。

奇怪的是,Opera 似乎根本不执行脚本,就好像我在 if 语句上设置了断点一样,它实际上从未中断过。该站点是否可以内置反用户脚本功能?还是我做错了什么来阻止这个执行?

最佳答案

将函数本身作为回调传递

addEventListener('load', meerfirst, false);
                  // no parens! ^^

通过放置圆括号,您可以立即调用该函数(在加载之前)并将其(无用的、非函数的)返回值传递给 addEventListener。


顺便说一句,既然您已经知道将在哪种浏览器上使用代码,为什么还要在一开始就进行该功能测试?

关于页面加载后的 Javascript 运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8023587/

相关文章:

javascript - 如何在 Google map 监听器中使用 bool?

Javascript OOP/类 - 多个实例共享相同的数据

css - Opera 浏览器的 -webkit-gradient 等效于什么?

javascript - onHashChange running onLoad...尴尬

javascript - Younow onLoad(与greatmonkey)

grails - Grails onLoad()审核

javascript - 使用 jQuery 刷新标签 : text() or replaceWith()

javascript - UI5 过滤同一列中的多个值

html - 图像在 Opera 和 Mozilla 中不起作用

html - 奇怪的(?)歌剧漂浮