页面加载后Javascript运行函数
我正在尝试用Javascript创建一个小的自动化脚本,我希望通过使用Opera的用户脚本功能来定义要运行的外部脚本来运行该脚本。我以前使用过这个功能来运行我用外部站点编写的脚本,效果很好 我需要等到页面加载后脚本才能运行,但我似乎无法让它正常工作。目前的代码是:页面加载后Javascript运行函数,javascript,opera,onload,Javascript,Opera,Onload,我正在尝试用Javascript创建一个小的自动化脚本,我希望通过使用Opera的用户脚本功能来定义要运行的外部脚本来运行该脚本。我以前使用过这个功能来运行我用外部站点编写的脚本,效果很好 我需要等到页面加载后脚本才能运行,但我似乎无法让它正常工作。目前的代码是: if (addEventListener in document) { // use W3C standard method document.addEventListener('load', meerfirst(), fal
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
顺便说一句,既然您已经知道将在哪个浏览器上使用代码,为什么要在开始时进行功能测试?将函数本身作为回调传递
addEventListener('load', meerfirst, false);
// no parens! ^^
通过插入括号,您可以立即(在加载之前)调用函数,并将其(无用、非函数)返回值传递给addEventListener
顺便说一句,既然您已经知道要在哪个浏览器上使用代码,为什么要在一开始就进行功能测试?试试:
window.onload = function()
{
meerfirst();
};
尝试:
您的答案很好地嵌套在O'Reilly的“Javascript:最终指南”中
这不仅会在浏览器完成加载时运行,还会处理跨浏览器差异。享受:)您的答案很好地嵌套在O'Reilly的“Javascript:权威指南”中
这不仅会在浏览器完成加载时运行,还会处理跨浏览器差异。享受:)此代码有几个问题:
if (addEventListener in document) { // use W3C standard method
document.addEventListener('load', meerfirst(), false);
} else { // fall back to traditional method
document.onload = meerfirst();
}
文档中查找属性名称,因此名称必须是字符串:如果(
meerfirst
而不是meerfirst()
DOMContentLoaded
而不是load
——除非您要运行一些需要等待所有图像加载的代码该代码有几个问题:
if (addEventListener in document) { // use W3C standard method
document.addEventListener('load', meerfirst(), false);
} else { // fall back to traditional method
document.onload = meerfirst();
}
文档中查找属性名称,因此名称必须是字符串:如果(
meerfirst
而不是meerfirst()
DOMContentLoaded
而不是load
——除非您要运行一些需要等待所有图像加载的代码我以前尝试过window.onload方法,但没有效果。正如在上面的评论中所提到的,我越来越认为它与从未执行的脚本有关,这就提出了一个问题:@missingno提到的参数是addEventListener调用的问题。我以前尝试过window.onload方法,但没有用。正如在上面的评论中提到的,我认为它越来越与脚本从未执行有关,这就提出了一个问题,@missingno提到的paren是addEventListener调用的问题。它是立即调用meerfirst,而不是加载。请参见此处:。如下文提到的@missingo所述,移除Paren。它似乎没有调用meerfirst,因为nameForm在加载页面之前第一次调用它时返回undefined。它立即调用meerfirst,而不是在加载时。请参见此处:。如下文提到的@missingo所述,移除Paren。它似乎没有调用meerfirst,因为nameForm在加载页面之前第一次调用它时返回undefined。我还建议将
var
放在定义nameForm的第一行前面。这使得“nameform”成为局部变量而不是全局变量。我还建议将var
放在定义nameform的第一行前面。这使得“nameform”成为局部变量而不是全局变量。