繁体   English   中英

为什么此脚本无法正常工作?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM