首页 > 解决方案 > 如何允许我的 Product1 用户从 Product1 网页为我的 Product2 链接添加书签?

问题描述

我试图让我的用户通过单击按钮为我的外部产品链接添加书签,但遇到了问题,window.sidebar.addPanel因为window.external.AddFavorite现在两者都不支持。

我有一个 PHP 应用程序并在这里寻找最合适的解决方案。

我正进入(状态

未捕获的类型错误:window.sidebar.addPanel 不是函数

以下代码错误。

<head>
  <script type="text/javascript">
    function AddToBookmark() {
      if (window.sidebar) { // Firefox
        window.sidebar.addPanel('Dottoro help page', 'http://help.dottoro.com', '');
      } else {
        if (window.external && ('AddFavorite' in window.external)) {
          // Internet Explorer
          window.external.AddFavorite('http://help.dottoro.com', 'Dottoro help page');
        } else { // Opera, Google Chrome and Safari
          alert("Your browser doesn't support this example!");
        }
      }
    }
  </script>
</head>

<body>
  <button onclick="AddToBookmark();">Add to Bookmark</button>
</body>

标签: javascriptphp

解决方案


根据这个答案

addPanel自 23 版起已从 Firefox 中删除。但您可以改用标记:

<a href="http://stackoverflow.com" title="Stack Overflow" rel="sidebar">Bookmark me</a>

因此,您可以在函数中模拟点击类似<a>标签,AddToBookmark()如下所示。

const anchorTag = document.createElement('a');
anchorTag.href = "http://help.dottoro.com"
anchorTag.title= "Dottoro help page";
anchorTag.rel= "sidebar";
anchorTag.click();

<body>

  <button onclick="AddToBookmark();">Add to Bookmark</button>

  <script type="text/javascript">
    function AddToBookmark() {
      if (window.sidebar) { // Firefox
        const anchorTag = document.createElement('a');
        anchorTag.href = "http://help.dottoro.com"
        anchorTag.title = "Dottoro help page";
        anchorTag.rel = "sidebar";
        anchorTag.click();
      } else {
        if (window.external && ('AddFavorite' in window.external)) {
          // Internet Explorer
          window.external.AddFavorite('http://help.dottoro.com', 'Dottoro help page');
        } else { // Opera, Google Chrome and Safari
          alert("Your browser doesn't support this example!");
        }
      }
    }
  </script>
</body>


推荐阅读