2

让我们跳出框框思考!

如果没有任何编程技能,您如何说出/检测您是否在列出产品的网页上,而不是在打印产品特定详细信息的页面上?

使用 JavaScript 将 Bookmarklet 插入网站的正文标记之后(eBay、Bloomingdales、Macy's、toys'r'us ...)

现在,我的故事是:(现在需要编程技能)

我有一个书签,我的主要问题是如何检测我是否在列出产品的页面上,或者我是否在打印产品详细信息的页面上。

我能想到的检测我是否在产品的详细信息页面上的最好方法是检测当前 URL 的推荐。(可能是所有的推荐,整个点击历史)

可能的问题:用户将 URL 添加为收藏,但不使用我的书签,并关闭浏览器;然后用户再次使用浏览器,单击收藏链接并使用我的 bookmaklet,我认为在这种情况下我无法检测到推荐;没关系,并非所有情况都涵盖或可能;

在这种情况下,我可以使用缓存检测此链接的引用吗?(我知道这里涉及许多浏览器缓存系统)

4

4 回答 4

3

不可以。您无法使用小书签或任何普通的客户端 JavaScript 检查历史记录。你是对的,如果从书签加载,推荐人将为空。

但是,小书签第一次使用时可以将引用者存储在 cookie 或 localStorage 中,然后在下次使用时,如果引用者为空,请检查 cookie 或 localStorage。

也就是说,你对这个问题的整个处理方法对我来说似乎真的很奇怪,但我没有足够的细节来知道我们的精神错乱是否是天才。

如果我试图确定当前页面是列表还是详细信息页面,我会检查 url 是否有常见模式或检查页面内容是否有常见模式。

常见 url 模式示例:许多“列表页面”是搜索结果,因此查询字符串将包含“search=”、“q=”、“keywords=”等字词。

页面内容模式示例:一个产品页面将只有 1 个“购买”按钮或“添加到购物车”,无论如何。一个列表页面要么没有这样的按钮,要么有很多。

于 2012-10-01T08:58:57.100 回答
3

您如何说出/检测您是否在列出产品的网页上,而不是在打印产品特定详细信息的页面上

我会设置Brain.js(一个用 javascript 实现的神经网络)并在一个(必须广泛和多样的)DOM 样本集上对其进行训练,然后选择一个阈值product:details比率来“检测”(尽可能接近)什么类型我所在的页面。

这需要一些试验和错误,但这是我能想到的最好方法(神经网络可以很快得到“足够好”的结果——试试吧,你会对结果感到惊讶)。

于 2012-10-10T05:35:49.413 回答
2

我想说你的目标首先应该是让它适用于某些网站。然后是许多网站,然后是所有网站。

A) 尝试对亚马逊、eBay 等主要网站进行手工编码……记住一个目标。

B)更有创意的方法可能是保留所有货币符号的列表,然后检测页面是否可能有 10 个分散在各处。例如,$ 符号遍布亚马逊。但是只有当每页有 20 个时,你才能真正说它是一个产品列表(这是一个不好的例子,亚马逊的页面相当疯狂)。也许货币符号不起作用;但是,我认为您可以概括类似的东西。可能有大量的货币符号加上“网格”类型系统的检测,其中的东西排成一排。你会得到很多垃圾,所以你需要很好的过滤。在您有类似这样的算法工作之后,需要进行数据分析。

C)我认为在 B)之后你会意识到你的系统可能会更好地使用 A)的部分。换句话说,您将想要从某些流行的网站(或更多的小众网站)中定制地狱。这应该有助于填补不遵循任何已知模型的网站的空白。

现在就跟踪用户的来源而言,为什么不使用跟踪 cookie 类型的概念。您当然可以使用 indexedDB 或 localstorage 之类的。换句话说,始终通过将最后一页保存在当前页面上来保持对最后一页的引用。你也可以做一些事情,比如有一个堆栈并在每个页面上将 url 推送到它上面。如果您出于某种原因想要保存它,只需将该数据发送回您的服务器。

检测最喜欢的点击可能涉及检测所有 AJAX 流量并对其进行分析(尽管这可能很难......)。您应该首先进行一项调查,看看这些电话通常是什么样子。我想像 amazon.com/favorite/product_id 这样的东西会相当普遍。另外...您可以尝试检测页面上“收藏夹”按钮的选择器,然后添加一个 onclick 处理程序来检测它何时被单击。

我试图解决你提到的每一个问题。我不认为我完全理解你想要做什么。

于 2012-10-06T03:54:22.363 回答
2

为什么不使用网址?那么你可以做这样的事情http://www.le.url.com?pageid=10&type=DS然后代码将是这样的:

<?php
if(isset($_GET['type']) && $_GET['type'] == 'DS'){
    // Do stuff related to Details Show
} else{
    // Show all the products
}
?>

您可以使用 .htacces 文件制作类似这样的网址:http: //www.le.url.com/10/DS

于 2012-10-01T07:20:29.637 回答