2012-07-19 29 views
-1

我一直想弄清楚爲什麼我添加到書籤JavaScript將不會加載時單擊。我認爲這與div的定位有關:絕對的,因爲當我刪除我的所有div,只是有它的鏈接工作。我已經包括我的CSS,HTML和JavaScript。我的書籤添加到JavaScript點擊時不會加載

html { 
    width:100%; 
    height:100%; 
} 

body { 
    background: #403F3D url(images/background.png) top center fixed; 
    margin:0; 
    padding:0; 
    font-family: Verdana, Arial, Helvetica, sans-serif; 
    color:#444; 
    font-size:12px; 
    line-height:1.9em; 
    text-align: center; 
} 

* { 
    margin:0; 
    padding:0; 
} 

#container { 
    position:absolute; 
    top: -10px; 
    left: 50%; 
    margin-left: -447.5px; 
    text-align:left; 
} 

#bookmark { 
    position:absolute; 
    left:222px; 
    top:343px; 
    width:282px; 
    height:46px; 
} 

<div id="container"> 
<div id="bookmark"> 
<a href="javascript:bookmarksite('WoW Mania - World of Warcraft Gameplay Guide', 'http://www.wowmania.net')"> 
<img src="images/bookmark.png" class="domroll images/active-bookmark.png"></a> 
</div> 
</div> 

function bookmarksite(title,url){ 
if (window.sidebar) // firefox 
    window.sidebar.addPanel(title, url, ""); 
else if(window.opera && window.print){ // opera 
    var elem = document.createElement('a'); 
    elem.setAttribute('href',url); 
    elem.setAttribute('title',title); 
    elem.setAttribute('rel','sidebar'); 
    elem.click(); 
} 
else if(document.all)// ie 
    window.external.AddFavorite(url, title); 
} 
+0

你的img標籤是怎麼回事?標籤應該關閉。但是,我認爲「images/active-bookmark.png」由於「/」而不是有效的類名。看看這是否有幫助,因爲你的瀏覽器可能會試圖彌補不正當的標記。 – Sablefoste 2012-07-19 16:47:05

+0

domroll是另一個JavaScript ..它的圖像懸停。我已經在這裏上傳了這個網站,這樣你可以更好地觀看? – user1538508 2012-07-20 07:46:34

+0

http://www.wowmania.net/wowmania2 – user1538508 2012-07-20 07:46:51

回答

0

您使用的瀏覽器是?您的鏈接適用於我的Firefox(V14.01),但不適用於Internet Explorer。 IE總是傾向於用JavaScript來挑剔。

檢查開發者工具在IE中(按F12),我得到的錯誤:

SCRIPT438: Object doesn't support property or method 'addPanel' 
bookmark.js, line 10 character 2 

這是與你的行相關聯:

window.sidebar.addPanel(title, url, ""); 

所以,我覺得這是一個瀏覽器的兼容性事情。最好先檢查:

Add to browser favorites/bookmarks from JavaScript but for all browsers (mine doesn't work in Chrome)?

它看起來有點比較凌亂,但得到的答覆是在那裏。

+0

oooh ok。我已經嘗試了4個其他書籤腳本,並且他們都沒有工作。這很奇怪,因爲我在www.wowmania.net上使用了相同的書籤腳本,並且在IE中沒有問題。可能是因爲腳本試圖彈出,但它卡在div? – user1538508 2012-07-20 18:19:32

+0

嘿,我修好了。非常感謝。 – user1538508 2012-07-22 12:21:17

+0

恭喜!你可能想在這裏發佈你的問題的答案,所以有相同問題的人可以很容易地找到答案。 – Sablefoste 2012-07-23 01:41:52

0

試試這個,我修改了一個原創的腳本。適用於IE,FF和Opera,而Chrome和Safari則提供用戶提示。可悲的是,Webkit瀏覽器不允許它。

BookMarkMe = function() { 
    var isIEmac = false; /*@cc_on @if(@_jscript&&!(@_win32||@_win16)&& 
    (@_jscript_version<5.5)) isIEmac=true; @end @*/ 
    var isMSIE = (-[1,]) ? altIeCheck() : true; //added my own embellishment as the original (-1,]) ? false : true didn't work in ie10 
    var cjTitle = document.title; 
    var cjHref = location.href; 

    function hotKeys() { 
     var ua = navigator.userAgent.toLowerCase(); 
     var str = ''; 
     var isWebkit = (ua.indexOf('webkit') != - 1); 
     var isMac = (ua.indexOf('mac') != - 1); 
     var isIe = (ua.indexOf('msie') != - 1); 

     if (ua.indexOf('konqueror') != - 1) { 
      str = 'CTRL + B'; // Konqueror 
     } else if (window.home || isWebkit || isIEmac || isMac) { 
      str = (isMac ? 'Command/Cmd' : 'CTRL') + ' + D'; // Netscape, Safari, iCab, IE5/Mac 
     } else if (isIe){ 
      str = ('CTRL + D'); 
     } 
     return ((str) ? 'Press ' + str + ' to bookmark this page.' : str); 
    } 

    function altIeCheck(){ 
     return (navigator.userAgent.toLowerCase().indexOf('msie') != - 1); 
    } 

    function isIE8() { 
     var rv = -1; 
     if (navigator.appName == 'Microsoft Internet Explorer') { 
      var ua = navigator.userAgent; 
      var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); 
      if (re.exec(ua) != null) { 
       rv = parseFloat(RegExp.$1); 
      } 
     } 
     if (rv > - 1) { 
      if (rv >= 8.0) { 
       return true; 
      } 
     } 
     return false; 
    } 

    function addBookmark(a) { 
     try { 
      if (typeof a == "object" && a.tagName.toLowerCase() == "a") { 
       a.style.cursor = 'pointer'; 
       if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function")) { 
        window.sidebar.addPanel(cjTitle, cjHref, ""); // Gecko 
        return false; 
       } else if (isMSIE && typeof window.external == "object") { 
        if (isIE8()) { 
         window.external.AddToFavoritesBar(cjHref, cjTitle); // IE 8      
        } else { 
         window.external.AddFavorite(cjHref, cjTitle); // IE <=7 
        } 
        return false; 
       } else if (window.opera) { 
        a.href = cjHref; 
        a.title = cjTitle; 
        a.rel = 'sidebar'; // Opera 7+ 
        return true; 
       } else { 
        alert(hotKeys()); 
       } 
      } else { 
       throw "Error occurred.\r\nNote, only A tagname is allowed!"; 
      } 
     } catch (err) { 
      alert(err); 
     } 

    } 

    return { 
     addBookmark : addBookmark 
    } 
}();