为什么这个剧本不起作用?

时间:2015-12-02 09:46:16

标签: javascript jquery iframe

我需要的是一个脚本,如下所示,

页面打开的每个新时间,iframe必须选择50个链接中的1个,以便随机显示。 现在我做了一些研究,并制作了以下脚本。 它适用于JS(点)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>

(对不起英语不好,它不是我的主要语言

1 个答案:

答案 0 :(得分:0)

好吧,首先,由于浏览器安全限制,您无法在<iframe>中打开任何链接。您可以在How to show google.com in an iframe?了解更多信息。

现在让我们谈谈代码本身。

<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变量?您不在代码中使用它,并可以删除它。如果您有Math.random(),为什么50l多个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> 它更方便。考虑这个例子:

<iframe>

您可以在http://jsfiddle.net/tfno031a/查看工作示例(只需按左上角的“运行”按钮)。您必须稍微修改它以将内容加载到1.html(如果您有本地URL)。我希望这能帮到您。祝你好运!

修改

工作示例。我在主文件的同一目录中有一个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> ,我一开始就粗心。

var loc = window.location.pathname;

   $('#side-menu').find('a').each(function() {
     $(this).toggleClass('active', $(this).attr('href') == loc);
  });