使用JavaScript判断用户从哪个搜索引擎进入网页并获取关键词
网站推广和搜索引擎竞价的目的都是为了获取多样化的数据信息。为了实现这一目标,可以充分利用网页中的表单信息。
演示截图:
下面是一段使用JavaScript编写的代码。首先,会获取访问者是通过哪个搜索引擎进入网页的,然后获取他们搜索的关键词,以提高他们对网页的信任度。
支持的搜索引擎包括百度、360、搜狗、必应、Google、神马和今日头条等主流搜索引擎。
如果判断成功,会提示访问者是通过哪个搜索引擎进入的,并显示他们搜索的关键词。
例如,如果访问者是通过百度进入的,搜索关键词是"网站开发",会显示以下提示信息:"您从百度进入,需求是网站开发"。
格式:您从____进入网页,需求是____。
如果访问者直接进入网页或判断失败,显示为:"欢迎光临"。
完整代码如下:
<!DOCTYPE html> <html> <head> <title>判断搜索引擎和关键词</title> <meta charset="UTF-8"> <style> /* 样式代码可根据需要进行修改 */ #form-container { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 300px; padding: 20px; background-color: #fff; border: 1px solid #ccc; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); text-align: center; } #close-button { position: absolute; top: 10px; right: 10px; cursor: pointer; } </style> </head> <body> <script> // 判断搜索引擎和关键词 function getSearchEngineAndKeyword() { var referrer = document.referrer; var searchEngine = ''; var keyword = ''; if (referrer.includes('baidu.com')) { searchEngine = '百度'; var reg = /wd=([^&]+)/; var match = referrer.match(reg); if (match) { keyword = decodeURIComponent(match[1]); } } else if (referrer.includes('so.com')) { searchEngine = '360搜索'; var reg = /q=([^&]+)/; var match = referrer.match(reg); if (match) { keyword = decodeURIComponent(match[1]); } } else if (referrer.includes('sogou.com')) { searchEngine = '搜狗'; var reg = /query=([^&]+)/; var match = referrer.match(reg); if (match) { keyword = decodeURIComponent(match[1]); } } else if (referrer.includes('bing.com')) { searchEngine = '必应'; var reg = /q=([^&]+)/; var match = referrer.match(reg); if (match) { keyword = decodeURIComponent(match[1]); } } else if (referrer.includes('google.com')) { searchEngine = 'Google'; var reg = /q=([^&]+)/; var match = referrer.match(reg); if (match) { keyword = decodeURIComponent(match[1]); } } else if (referrer.includes('sm.cn')) { searchEngine = '神马'; var reg = /q=([^&]+)/; var match = referrer.match(reg); if (match) { keyword = decodeURIComponent(match[1]); } } else if (referrer.includes('toutiao.com')) { searchEngine = '今日头条'; var reg = /keyword=([^&]+)/; var match = referrer.match(reg); if (match) { keyword = decodeURIComponent(match[1]); } } if (searchEngine !== '' && keyword !== '') { // 如果成功判断出搜索引擎和关键词,则执行相应的操作 // 这里可以根据需求自定义操作,比如弹出提示框、跳转到指定页面等 alert('您从' + searchEngine + '进入网页,需求是:' + keyword); } else { // 如果无法判断成功,则在10秒后弹出表单 setTimeout(function() { showForm(); }, 10000); } } // 弹出表单 function showForm() { var formContainer = document.createElement('div'); formContainer.id = 'form-container'; var closeButton = document.createElement('span'); closeButton.id = 'close-button'; closeButton.innerHTML = '×'; closeButton.onclick = function() { document.body.removeChild(formContainer); }; var form = document.createElement('form'); form.innerHTML = ` <h2>欢迎光临</h2> <label for="name">称呼:</label> <input type="text" id="name" name="name" required><br><br> <label for="contact">联系方式:</label> <input type="text" id="contact" name="contact" required><br><br> <input type="submit" value="提交"> `; formContainer.appendChild(closeButton); formContainer.appendChild(form); document.body.appendChild(formContainer); } // 页面加载完成后调用函数 window.onload = function() { getSearchEngineAndKeyword(); }; </script> </body> </html>
根据代码修改自己的需求即可,这是一个简单的思路,有兴趣的可以自己扩展。
需要注意的是,代码不是当用户进入后就弹出,而是等待10秒后弹出,需要修改时间,在代码第95行进行修改,单位为毫秒。