[英]why this script won't work?
好吧,我需要的是一个脚本,其工作原理如下:
每次打开页面时, iframe
都必须选择50个链接中的1个以尽可能随机显示。 现在,我做了一些研究,并制作了以下脚本。 它适用于JS(dot)DO,但不适用于jsbin,当我尝试使用Chrome时,它将无法使用。 因此,我需要一些帮助,希望有人可以帮助我!
<iframe id="frame"></iframe>
<script>
(function() {
var e = document.getElementById('frame'),
f = function( el, url ) {
el.src = url;
},
urls = [
'link1',
// all links 1/50
'link50'],
i = 0,
l = urls.length;
f( e, urls[Math.round(Math.random()*50)] );
})();
</script>
(对不起,英语不好,这不是我的主要语言
嗯,首先,由于浏览器安全性的限制,您不能简单地在<iframe>
打开任何链接。 您可以在如何在iframe中显示google.com上了解更多信息。 。
现在让我们谈谈代码本身。
<iframe id="frame"></iframe>
<script>
(function() {
var e = document.getElementById('frame'),
f = function( el, url ) {
el.src = url;
},
urls = [
'link1',
// all links 1/50
'link50'],
i = 0,
l = urls.length;
f( e, urls[Math.round(Math.random()*50)] );
})();
</script>
为什么要设置i
变量? 您无需在代码中使用它,而是可以将其删除。 如果您有l
为什么将Math.random()
乘以50
。 将它乘以l
会更方便。 考虑以下示例:
<div id="divID"></div>
<script type="text/javascript">
var e = document.getElementById('divID'),
f = function( el, url ) {
el.innerHTML = url;
},
urls = ['https://www.google.ru/', 'https://www.yandex.com/', 'http://www.bing.com/', 'https://www.yahoo.com/', 'https://duckduckgo.com/'],
urlsLength = urls.length;
f( e, urls[Math.floor( Math.random() * urlsLength )] );
</script>
您可以在http://jsfiddle.net/tfno031a/上查看工作示例(只需按左上角的“运行”按钮)。 您必须稍加修改,才能将内容加载到<iframe>
(如果您有本地网址)。 我希望这能帮到您。 祝好运!
编辑
工作示例。 我在与主文件相同的目录中有一个1.html
文件。 另外还要注意Math.floor()
,在一开始我很粗心。
<iframe id='iframeID'></iframe>
<script type="text/javascript">
var e = document.getElementById('iframeID'),
f = function( el, url ) {
el.src = url;
},
urls = ['1.html'],
urlsLength = urls.length;
window.onload = f( e, urls[Math.floor( Math.random() * urlsLength )] );
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.