gpt4 book ai didi

javascript - 如何通过外部 JS 文件访问 ruby​​/rails 应用程序变量

转载 作者:行者123 更新时间:2023-11-28 08:59:45 24 4
gpt4 key购买 nike

我正在构建一个内部应用程序,旨在跟踪付费搜索广告效果。

假设我有一些不同的付费搜索广告系列,这些广告系列会将流量引导至不同的网站(我们称其为“目标网站”)。当用户点击付费广告并登陆目标网站时,会使用 JS 设置 cookie。然后,我会查找该 cookie 是否存在,如果已设置(意味着它们必须来自 adwords),我会将页面上的默认电话号码替换为跟踪号码。

我通过从目标站点引用我的 Rails 应用程序中的 JS 文件来完成此操作,如下所示:

<script src="http://www.myapp.com/assets/application.js" type="text/javascript"></script>

JS脚本适用内容:

if(window.location.href.indexOf("gclid") > -1) {
document.cookie = "ppc=adwords; path=/";
}


function getCookie(name) {
var nameEQ = name + '=';
var ca = document.cookie.split(';');

for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1, c.length);
}

if (c.indexOf(nameEQ) == 0) {
return unescape(c.substring(nameEQ.length, c.length));
}
}

return "";
}


var value = getCookie('ppc');
if (value != '') {
// this user has the cookie, which means they came from gclid
alert("this user has the ppc cookie!");

var testswap = function(){
var swap = document.getElementById("test").textContent;
document.getElementById("test").textContent = "New Number Insert";
}
document.addEventListener("DOMContentLoaded", testswap);

} else {

alert("user doesn't have cookie");
// this user lacks the cookie, which means they came from somewhere else
}

我将每个帐户的付费搜索号码存储在应用程序的数据库中。访问它的最佳方法是什么,以便我可以从上面的脚本中交换此行中的数字

document.getElementById("test").textContent = "New Number Insert from app's database";

我想我已经通过使用 gon gem 解决了这个问题但很快意识到它无法访问目标站点上 Controller 中设置的变量(我知道这听起来很明显,但我想也许一旦目标站点引用 JS 文件,JS 文件就可以访问这些变量)。 AJAX 是正确的选择吗?

免责声明:在编程方面我还是个新手,所以如果这个纲要可以更简洁,我深表歉意。另外,我知道这可能不是最有效的代码,所以如果这会使解释变得更加复杂,我很抱歉。

任何帮助将不胜感激!

最佳答案

您可以创建另一个 Controller ,该 Controller 将通过 cookie(或与用户号码相关的任何其他值)搜索用户号码,然后通过 ajax 获取它。

注意:未经测试的代码

Controller (也配置您的路线):

 class UsersController < ApplicationController
def get_number
@cookie = params[:cookie]
@user = User.where(cookie: @cookie).first
render json: @user.to_json
end
end

然后在你的application.js

  $.get("<your controller route>",{cookie: value},function(data){
var testswap = function(){
var swap = document.getElementById("test").textContent;
document.getElementById("test").textContent = data.number;
}
});

关于javascript - 如何通过外部 JS 文件访问 ruby​​/rails 应用程序变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17903982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com