什么'在这种上下文中实现的JS代码是错误的
What's wrong with this JS code implemented in this context?
http://jsfiddle.net/dS4r3/24/?q=hsbc
这个代码所做的是获取页面的refer,如果它包含你在那里看到的一个关键字,它就会用特定div的内容填充(它也会显示它)
正如你所看到的,当你点击那里时,它工作得很好,div出现了,它填充了包含关键字"hsbc"的内容。简而言之,该功能正在执行中。
现在的问题是,当我在这里实现完全相同的代码时,函数似乎无法执行:http://segurosendirecto.com.ar/cotizador-de-seguros-auto/?kw=hsbc
到目前为止,我尝试过但没有成功的事情:
- 更新jquery
- 删除所有其他脚本,只是为了确保它与此脚本不冲突
为什么它在第二个链接上不起作用?
jsfiddle不能正常处理referrer,所以在这种情况下,你从jsfiddler学到的东西不会转移到你的网站上。您的网站正在正常处理referrer,而referrer(http://stackoverflow.com/questions/9695194/whats-wrong-with-this-js-code-implemented-in-this-context
)根本不包含字符串hsbc
。
您需要做的是在您的网站上创建一个新页面(例如new-page
),该页面具有指向cotizador-de-seguros-auto
的链接,访问new-page/?kw=hsbc
并单击新链接。然后你的问题就会消失。
页面的引用者是启动链接的页面;在这种情况下,从stackoverflow点击上面的jsfiddle链接,jsfiddler中的引用者将是http://stackoverflow.com/questions/9695194/whats-wrong-with-this-js-code-implemented-in-this-context
jsfiddle在一个帧内运行,因此您可以获得子帧的referrer作为父帧;这就是您的示例测试在jsfiddle中工作的原因。我认为你需要使用或top.document.referrer或parent.documentt.referrer来获得stackoverflow url作为你指向jsfiddle页面的内容(如果它没有打破js跨站点安全限制)
如果你想知道当前页面的url是什么(比如在第二个链接的上下文中),你可以使用document.location.htm来获取http://segurosendirecto.com.ar/cotizador-de-seguros-auto/?kw=hsbc
,而不是document.referrer。然后你会在url的末尾找到hsbc。我认为document.location.htm可能是您希望在实际网站中通过hsbc参数获得的内容。
您的代码执行不正确。用包装所有代码
$(function(){
});
然后将整个<script></script>
块移到头上。
一种更可取的方法是将该代码添加到head标记中已经存在的文档就绪语句中。
$(document).ready(function () {
请参阅此处了解更多信息。
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- Chart.js-添加渐变而不是纯色-实现解决方案
- Ember.js-如何使用Ember.Router实现所选项目
- 如何在js中实现树结构类型的表单动态填充
- 如何在外部js文件中实现谷歌地图api3
- 在HTML中实现JS
- HTML中两种JS实现之间的差异
- 如何在three.js中实现不同相机/场景之间的交叉渐变
- Vue.js如何在定义API变量之前实现自定义过滤器
- 在 php 代码中实现倒计时 js 倒计时
- 在Sinatra(ruby)中实现JS模糊搜索
- 在node.js中实现Restful api
- 使用 JavaScript/Node.js 实现插件架构
- 在 IOS 中实现 JS 功能
- 从服务器接收并以chrome扩展实现.js文件
- 如何在Angular 2组件中实现js函数
- 现代浏览器是如何实现JS数组的,特别是添加元素
- 尝试实现 js textualizer
- 使用一个接受两个参数的函数实现 JS 本机“filter”方法
- 用extjs实现js的基本功能