日期:2014-05-16  浏览次数:20506 次

window.external.AddFavorite 为啥不能自动执行,我用的是IE浏览器,版本IE8
HTML code
<html>
<head>
    <title>Untitled Page</title>
    <script type="text/javascript">
        function addBookmark(title) {
            var url = parent.location.href;
            if (window.sidebar) {
                window.sidebar.addPanel(title, url, "");
            } else if (document.all) {
                window.external.AddFavorite(url, title);
            } else if (window.opera && window.print) {
            }
        }
        addBookmark("测试收藏");//这里为啥不执行
</script>
</head>
<body>
<button id="btnClick" onclick="addBookmark('测试收藏');">测试收藏</button>
</body>
<script type="text/javascript">
    window.onload = function() {
        var obj = document.getElementById("btnClick");
        if (obj) {
            obj.click();//还有这里加载完成以后为啥不执行
        }
    }
</script>
</html>


------解决方案--------------------
应该是浏览器的安全机制,类似于window.open一样,
ie8下好像对onload,onunload,onmouseover==事件都无效.

你还是用onclick吧.
不知道这样写能不能满足你需求

HTML code

  <script language="javascript">
      var isclick = false;
      function a() { window.external.addFavorite('http://www.csdn.net', 'csdn') }
      document.onclick = function() {
          if (!isclick) {
              isclick = true;
              a();
          }
      }
</script>

------解决方案--------------------
初装 ie8 时,是可以的.

记得是加上一个安全补丁后

window.external 没有了任何属性
就不行了
------解决方案--------------------
可能是安全性提高了吧。
------解决方案--------------------
这个不太清楚,关注一下。
------解决方案--------------------
安全性提高了
------解决方案--------------------
我测试了下 vs2008 IE8 没问题 能收藏