页面加载后Javascript运行功能

Fla*_*lyn 1 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';
 }
Run Code Online (Sandbox Code Playgroud)

这是我自己的函数,添加了通过另一个问题找到的if语句.我也试过window.onload,但它仍然无法正常工作.

奇怪的是Opera根本就没有真正执行脚本,好像我在if语句上设置了一个断点,它从来没有实际打破它.该网站是否内置了反用户脚本功能?或者有可能我做错了什么来阻止这个执行?

hug*_*omg 5

将函数本身作为回调传递

addEventListener('load', meerfirst, false);
                  // no parens! ^^
Run Code Online (Sandbox Code Playgroud)

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


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