Javascript 如何检测浏览器中是否安装了bookmarklet?

Javascript 如何检测浏览器中是否安装了bookmarklet?,javascript,browser,bookmarklet,Javascript,Browser,Bookmarklet,我想检测用户是否将我创建的书签拖放到书签菜单。有什么办法可以做到这一点吗?没有;你不能 但是,您可以让它记录对服务器的单击。(或点击页面上的JS代码)否;你不能 但是,您可以让它记录对服务器的单击。(或点击页面上的JS代码)否。出于安全/隐私原因,网页不允许访问用户的书签(并且没有API允许,即使有明确的权限)。可能只有浏览器扩展才能做到这一点(对于FF,则有一个)。请注意,bookmarklet没有“安装”,它们只是存储为书签的javascript片段。否。出于安全/隐私原因,不允许网页访问用

我想检测用户是否将我创建的书签拖放到书签菜单。有什么办法可以做到这一点吗?

没有;你不能

但是,您可以让它记录对服务器的单击。(或点击页面上的JS代码)

否;你不能


但是,您可以让它记录对服务器的单击。(或点击页面上的JS代码)

否。出于安全/隐私原因,网页不允许访问用户的书签(并且没有API允许,即使有明确的权限)。可能只有浏览器扩展才能做到这一点(对于FF,则有一个)。请注意,bookmarklet没有“安装”,它们只是存储为书签的javascript片段。

否。出于安全/隐私原因,不允许网页访问用户的书签(并且没有API允许它,即使有明确的权限)。可能只有浏览器扩展才能做到这一点(对于FF,则有一个)。请注意,bookmarklet并没有“安装”,它们只是存储为书签的javascript片段。

要绝对肯定地知道它们只是安装了bookmarklet,在正常情况下是不可能的

几乎绝对肯定地知道他们已经安装并使用了bookmarklet是可能的。例如,如果您的bookmarklet调用或导航到URL,您可以向URL添加一个参数,如
&origin=bookmarklet
,并在服务器上跟踪该参数

您还可以得到一个相当公平的想法,即至少有人试图通过使用bookmarklet链接上的
拖动
事件来安装bookmarklet。差不多

<a ondrag="recordBookmarkletDragEventOnServerWithAjax()"
  href="javascript:/* bookamrklet code */">myBookmarklet</a>

您可以在每个书签中嵌入一个唯一的ID号,以增强跟踪安装跟踪功能。例如:

<a ondrag="recordBookmarkletDragEventOnServerWithAjax('9h297gh3sdsd')"
  href="javascript:id='9h297gh3sdsd'; /* bookmarklet code sends id to server */"
  >myBookmarklet</a>

使用如上所述的ID号,看看有多少人拖动您的bookmarklet但从未使用过它,这可能会很有趣


或者,您可以让他们安装一个插件或扩展,该插件或扩展可以自动呼叫您的服务器确认安装。

要绝对肯定地知道他们只是安装了bookmarklet,在正常情况下是不可能的

几乎绝对肯定地知道他们已经安装并使用了bookmarklet是可能的。例如,如果您的bookmarklet调用或导航到URL,您可以向URL添加一个参数,如
&origin=bookmarklet
,并在服务器上跟踪该参数

您还可以得到一个相当公平的想法,即至少有人试图通过使用bookmarklet链接上的
拖动
事件来安装bookmarklet。差不多

<a ondrag="recordBookmarkletDragEventOnServerWithAjax()"
  href="javascript:/* bookamrklet code */">myBookmarklet</a>

您可以在每个书签中嵌入一个唯一的ID号,以增强跟踪安装跟踪功能。例如:

<a ondrag="recordBookmarkletDragEventOnServerWithAjax('9h297gh3sdsd')"
  href="javascript:id='9h297gh3sdsd'; /* bookmarklet code sends id to server */"
  >myBookmarklet</a>

使用如上所述的ID号,看看有多少人拖动您的bookmarklet但从未使用过它,这可能会很有趣


或者,您可以让他们安装一个插件或扩展,该插件或扩展可以自动呼叫您的服务器确认安装。

您可以让bookmarklet在
window.location.href
上包含一个测试,并要求用户在“安装页”上运行它以“确认”它已安装您可以让bookmarklet在
window.location.href
上包含一个测试,并要求用户在“安装页面”上运行它以“确认”它已安装感谢您的回答。这很鼓舞人心!谢谢你的回答。这很鼓舞人心!