簡體   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