2012-03-17 59 views
0

我編寫了一些JavaScript來在用戶滾動時移動廣告條。但是,它的工作正常,除了Internet Explorer之外的所有瀏覽器......看起來像我的JS甚至沒有開始... 我使用的是最新的IE9。JavaScript未在Internet Explorer中運行

如何我調用它:

<html> 
<head> 
    <script src="./js/move-it.js" type="text/javascript"></script> 
</head> 
<body> 
    ... 
    <div id="bird"> 
    <iframe ...>...</iframe> 
    </div> 
    <script type="text/javascript"> 
    start(); // method in move-it.js 
    </script> 
</body> 

網站:http://lolkitten.org

順便說一句,誰能告訴我如何防止旗幟撞到我的頁腳在一個不錯的方式?我試圖把一個div作爲「塞子」放在較低廣告的上方,並使用它的「偏移頂」屬性,但我想它總是給我一個太小的值,即它保持崩潰...... -.-

歡呼聲

+0

我無法在http://lolkitten.org/wp-content/themes/lolkitten/js/move-it.js – 2012-03-17 14:39:00

+0

中的任何地方看到名爲start()的函數包含move-it.js man ... – user577898 2012-03-17 14:39:50

+0

@Matt,但它仍然在另一個web瀏覽器上運行。 – user577898 2012-03-17 14:41:04

回答

3

我設法讓它現在工作。 問題是IE不允許在JavaScript中使用const修飾符。我只是將它們更改爲var,它工作得很好。

+0

爲什麼downvote? IE(至少<= 9)不會與'const'相處。嘗試一下,如果你不喜歡我,請留下評論! :/ – 2013-12-03 15:03:03

+0

你真的癡迷於投票的東西,不是嗎?放輕鬆,它可能會導致你心臟病發作:) – dariush 2014-08-25 11:25:03

+0

我不關心那些-2虛構的互聯網點。只是下調錶示某人認爲答案是不正確的,在這種情況下,他們應該解釋爲什麼這會啓發我們其他人。我仍然非常確定上面的陳述是正確的,但是如果沒有,我會*真的*想知道爲什麼不瞭解細節。 – 2014-08-25 14:20:20

0
  1. 在工具菜單上,單擊Internet選項,然後單擊安全選項卡。
  2. 單擊Internet區域。
  3. 如果您不必自定義Internet安全設置,請單擊默認級別。然後執行步驟4
    如果您必須自定義Internet安全設置,請執行以下步驟:

    a。點擊自定義級別。 b。在「安全設置 - Internet區域」對話框中,單擊「腳本」部分中的「對活動腳本進行啓用」。

  4. 單擊返回按鈕返回上一頁,然後單擊刷新按鈕運行腳本。

+0

它已經啓用,但仍然不工作... – 2012-03-18 10:16:25

+0

不工作.... – Tanuki 2017-10-26 06:44:16

2

IE,所有版本都不容忍PHP程序員犯的常見錯誤。這裏是不是IE接受的,對所有的功能JavaScript語法的列表,包括AJAX:

(這些IE JavaScript語法錯誤並不在Opera,Chrome和Firefox的錯誤)

  1. 您不能設置函數聲明參數function thisFunction(something='x'){ thingy.here;}中的默認變量值是不允許的,並且將在調用thisFunction()時作爲未聲明的函數進行讀取。

  2. 將對象作爲函數參數傳遞可能會有意想不到的結果:function(someObject)可能會或可能不會取決於上下文。

  3. 未聲明的變量停止腳本

  4. event.preventDefault();不能被調用的函數內被調用,並且將停止腳本

  5. event.preventDefault();必須首先聲明,在之前所有其它功能時參考..這在其他瀏覽器上不是這樣。所以IE必須默認異步運行...

    當PHP程序員第一次學習享受JavaScript的同步特性作爲第一課的語言時,可能不會出現這種情況。當直接放入一個鏈接

    onclick="function() { 
        if(typeof someFunction === 'function') { 
         event.preventDefault(); 
         someFunction('anyParameter'); 
        };" 
    

    當您使用頁面上的相同的代碼,不執行或聲明的標籤這個例子沒有在「一個」標籤的工作(不工作)函數someFunction()。多浪費時間!

  6. onclick='clickChild(this);'在IE上不起作用...我不知道爲什麼。它實際上會阻止一個包含的鏈接並且什麼也不會發生。似乎與上述的僅作爲事件引用中的第一個函數的preventDefault的行爲相矛盾,並且如果不先調用,則將遵循包含鏈接。所以IE中的邏輯不一致。 ---截至今天,2017年1月21日,在今天的Google Chrome更新中,上述功能在Chrome中也不起作用。

在窗體中,「按鈕」標記不會正確返回表單提交的值。這可能會在新的IE版本中修復,或者可能不會。對於我當前的項目:yad1.org,按鈕標記是多語言提交按鈕名稱所必需的,這些按鈕名稱對所有語言都要求相同的值。

結論: IE應該從Windows中刪除,並永遠被遺忘。

真正浪費時間調試。 IE需要與Javascript的程序員友好世界取得聯繫。

相關問題