javascript - 如何执行 Javascript 代码以获得用户代理?

标签 javascript jquery ajax googlebot

我有一个具有用户跟踪功能的电子邮件营销网站,这通常是我所做的。 我要求我的客户将此代码添加到他们的网站以跟踪他们客户的行为。

var _ssprt=('https:'==document.location.protocol?'https':'http');
var ig = navigator.userAgent.toLowerCase().indexOf('googlebot') > 0;
document.write('<img height="1" width="1" src="'+_ssprt+'://www.myurl.com/system/sitecode.php?t='+document.title+'&adres='+document.location.href+'&ua='+ig+'" hspace="0" />');

通常如果通过浏览器进入网站,我可以很容易地检测到它的用户代理。

但是,如果这是 GoogleBot ,因为它将网站作为源代码执行,它不会向我的主 url 发送任何数据。 它也不能执行php。 因此,我看不到是否有任何 googlebot 进入该网站。

我使用这段代码来获取用户代理

var ig = navigator.userAgent.toLowerCase().indexOf('googlebot') > 0;

我想我可以通过 htaccess 将我的 sitecode.php 重定向到 js。 所以它将表现为 sitecode.js,我将把它包含在 script src code

我想知道如果我这样做了,googlebot 会执行那个 JS。

我正尝试用这段代码来做这个,但我没能成功。此外,我不确定 Google 是否会执行此操作并将用户代理数据发送给我。

RewriteEngine on
RewriteRule ^sitecode.js$ sitecode.php [QSA,L]

最佳答案

我的疑问是您确实想要检测您网页上的 GoogleBot 命中?或者至少检测它们以便您可以在自己的代码中过滤掉它们?

GoogleBot 可以插入一些 JavaScript,但它不会将其作为浏览器执行。在解释脚本方面,谷歌对 GoogleBot 的所作所为保持沉默。当用户禁用 JavaScript 时也存在同样的问题,那么您将看不到他们的访问。

有很多方法可以制作AJAX content crawlable由 GoogleBot,但它也需要一些服务器代码。

不幸的是,确保跟踪所有访问者的最安全方法是使用服务器端代码。

可选 - 我建议这样做有一些保留,因为我自己没有尝试过 - 你可以尝试在你这边添加一个 img 或一个隐藏链接到你的 php 页面,然后检查用户代理和引用以获取页面用户正在访问 - 但我不完全确定它是否以这种方式工作以及 GoogleBot 是否会发送引用 header 。也许其他人已经尝试过了?

关于javascript - 如何执行 Javascript 代码以获得用户代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19354076/

相关文章:

asp.net - 使用 Ajax,是在服务器端还是在客户端生成额外的标记更好?

jquery - 从更改时的选择中获取值(value)

javascript - 使用 WP-pagenavi 和 AJAX 的 WordPress 页面导航

javascript - 浏览器偶尔中止 Ajax 请求而不返回任何错误

javascript - 将标签添加到标签内的文本

jquery - 如何将div分成百分比但在左侧保持一个恒定宽度值div

javascript - 在 jQuery 中显示/隐藏子列表项

php - 如何循环$_GET获取所有数据

javascript - 从javascript POST具有相同ID的多个表单

jquery - 如何在提交表单之前制作模式确认对话框?