用户报告和涡轮链接 - 如何使JS涡轮链接兼容
UserReport and Turbolinks - How to make JS turbolinks compatible?
我正在运行轨道,我的身体标签末尾有这段代码。
:javascript
var _urq = _urq || [];
_urq.push(['initSite', 'mySiteId']);
(function() {
var ur = document.createElement('script'); ur.type = 'text/javascript'; ur.async = true;
ur.src = ('https:' == document.location.protocol ? 'https://cdn.userreport.com/userreport.js' : 'http://cdn.userreport.com/userreport.js');
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ur, s);
})();
无论我做什么,单击任何和所有启用涡轮链接的链接都会破坏此代码。按钮消失。
我尝试将代码封装在一个名为userReport的函数中,然后执行以下操作:
$(document).ready(userReport);
$(document).on('page:load', userReport);
这行不通。
非常欢迎提出建议:)
您的脚本位于正文部分的末尾,每次重新加载body
时script
元素插入 html 的head
部分。我想知道,你为什么需要这样做?因为,每次点击链接时,您都会在文档的head
部分获得一个重复的script
元素(感谢涡轮链接的魔力)。这可能是您问题的原因。
如果你真的需要通过javascript来做到这一点,试着在app/assets/javascript/application的末尾添加你的代码.js(我知道不建议这样做,而只是为了测试这个想法)。希望对您有所帮助。
更新根据UserReport的文档,javascript片段应该属于head
部分。要以相同的方式执行此操作,如他们的示例中所示,您可以将脚本放在"userreport"部分中,并在应用程序的布局模板中使用该部分:
<head>
…
<%= render 'layots/userreport' %>
</head>
不幸的是,userreport.js 脚本不启用小部件的"重新加载",因此这是不可能的。
我从 CDN 中提取代码,对其进行修改并在我的资产中使用它,以便我可以在想要显示小部件时调用reset_user_report();
(请参阅此存储库:https://github.com/nicolasmlv/userreport-turbolinks)
风险自负,因为它将不再使用用户报告 CDN(功能更新/错误修复)
相关文章:
- Hammer.js阻止在Android Webview中点击超链接
- 如何检查链接是否有文本,并根据文本值评估条件-Jquery/JS
- 如何从外部链接JS文件
- 正在Rail应用程序中链接JS文件
- 页面加载时出现浏览器链接 JS 错误
- Chrome扩展:从弹出窗口发送数据以取消链接JS文件
- 如何制作一个按钮,当悬停在上面时,会滑动并显示链接 (JS)
- 有条件地以角度显示链接.js
- 排除具有自动链接器的特定链接.js
- 图片链接替换为其他链接JS
- 链接js和immacro来自动填写表单
- 链接JS和jQuery文件
- AngularJs -在js指令中链接js代码
- 如何在钛中链接js页面
- 为什么我不能连接到外部链接.js ?(使用Xcode插件phonegap)
- 绕过打开链接js的限制
- 如何链接JS路由变量和Symfony 2 url
- 脚本标签-不链接(JS平台游戏)
- 如何向图表添加链接.js(圆环图)
- 如何使列成为数据表中的链接.js