我想在单击按钮时显示数组中的随机引用。问题是我的代码在加载页面时没有显示第一个随机引用。换句话说,这段代码有效但看到第一个引用我必须按下按钮。加载浏览器时如何才能获得第一个随机引用?谢谢!
<script language="javascript">
function quotes(){
var aquote = new Array;
aquote[0]="\"Quote 1.\"";
aquote[1]="\"Quote 2.\"";
aquote[2]="\"Quote 3.\""
rdmQuote = Math.floor(Math.random()*aquote.length);
document.getElementById("txtbox") .value=aquote[rdmQuote];
}
</script>
和HTML
<textarea id="txtbox" style="width:600px;" readonly></textarea>
<button onClick="quotes()">Click Here</button>
答案 0 :(得分:0)
function quotes(){
var aquote = new Array;
aquote[0]="\"Quote 1.\"";
aquote[1]="\"Quote 2.\"";
aquote[2]="\"Quote 3.\""
rdmQuote = Math.floor(Math.random()*aquote.length);
document.getElementById("txtbox") .value=aquote[rdmQuote];
}
quotes(); // here call that function. just make sure the DOM is ready.
答案 1 :(得分:0)
在脚本标记中定义后调用函数quotes()。如果脚本标记显示在您尝试获取的DOM元素之后,那么您应该没问题。但是将它放在$(document).ready()块中会更安全。
答案 2 :(得分:0)
使用
window.onload = quotes;
在功能定义之后。
答案 3 :(得分:0)
<强> jsfiddle Demo 强>
您可以调用quotes
函数以获取第一个随机引用。但是,一旦函数可以访问dom元素,就应该这样做。因此,在尝试访问该元素之前,您将要等待dom呈现。您可以将onload
事件附加到window
然后将该调用函数quotes
添加。{/ p>
function quotes(){
var aquote = new Array;
aquote[0]="\"Quote 1.\"";
aquote[1]="\"Quote 2.\"";
aquote[2]="\"Quote 3.\""
rdmQuote = Math.floor(Math.random()*aquote.length);
document.getElementById("txtbox") .value=aquote[rdmQuote];
}
window.onload=quotes;
答案 4 :(得分:0)
其他一些人建议将引号函数分配给onload或onready等事件处理程序。这并不总是有效,具体取决于其他脚本也可能正在使用这些事件处理程序,以及它们是否正常地重新定义事件处理程序或覆盖事件处理程序。
当我编写像你这样的代码,或回答像你这样的问题时,我不确定它将在什么环境中运行,我使用setTimeout或在定义了必要的textarea HTML之后放置的另一个脚本。
如果确保将整个脚本放在包含textarea的HTML之后,则可以使用gdoron的答案。
如果您不能使用事件处理程序,并且无法在使用它的HTML元素之后移动脚本元素,那么您可以将此行添加到您的代码中。在实践中它应该一直有效,但理论上它可能会失败:
setTimeout(quotes, 500);
在结束脚本标记之前添加该行,如果其他方法都不适合你,那么你应该好好去。
答案 5 :(得分:0)
// Create an array and assign your quote urls
var quotation = new Array();
quotation[0] = "paster your quote url";
quotation[1] = "paster your quote url";
quotation[2] = "paster your quote url";
quotation[3] = "paster your quote url";
var random = Math.floor(Math.random()*(quotation.length));
function printquote(){
document.write(quotation[random]);
}
<button onclick="printquote">Get quote</button>