Javascript 从页面上的元素抓取URL以进行Bitly URL缩短

Javascript 从页面上的元素抓取URL以进行Bitly URL缩短,javascript,shopify,bit.ly,Javascript,Shopify,Bit.ly,我在shopify工作——试图在客户端完成这项工作 我正在生成一个URL(基于购物车中当前的项目),该URL根据项目ID#将项目添加到购物车中 我在为我们的销售团队打造这个小东西,因此,他们可以为客户启动订单,并通过URL将该安排发送给某人-现在在shopify中,如果您按照他们的方式进行,则会将客户带到付款窗口,而他们无法编辑该订单-这样,我们只会在购物车中发送一个安排,他们可以在实际付款前进行调整 所以现在,这个url变得非常长,这取决于购物车中有多少物品,我想使用bit.ly根据生成的ur

我在shopify工作——试图在客户端完成这项工作

我正在生成一个URL(基于购物车中当前的项目),该URL根据项目ID#将项目添加到购物车中

我在为我们的销售团队打造这个小东西,因此,他们可以为客户启动订单,并通过URL将该安排发送给某人-现在在shopify中,如果您按照他们的方式进行,则会将客户带到付款窗口,而他们无法编辑该订单-这样,我们只会在购物车中发送一个安排,他们可以在实际付款前进行调整

所以现在,这个url变得非常长,这取决于购物车中有多少物品,我想使用bit.ly根据生成的url创建一个短url-我现在有了它,这样它就可以对url进行编码,这样里面就不会有任何奇怪的字符-但是看看bitly api文档,大多数示例都是通用的,而堆栈溢出的其他情况似乎都是针对它们的问题--

也许这是不可能的?感谢您花时间阅读本文,如果有任何人有任何建议,或者如果您认为我只是错过了一大块明显的东西,请随时告诉我。我可以为我目前拥有的东西提供代码,如果这能让我更容易理解我正在尝试做什么

该页面外观的屏幕截图

----在下面添加代码----

//获取购物车
if(typeof Shopify=='undefined')var Shopify={};
Shopify.cart={cart|json};
Shopify.idsIntranet=[];
Shopify.quanitranet=[];
//我们要把网址放在哪里
var cartURL=document.getElementById('cart_url');
//对于Shopify购物车中的每一项-推送到IDSENTAVT并将ID打印到购物车url

对于(var i=0;iSo),您不知道如何调用bit.ly api来生成url?为什么不在保存url的站点上创建自己的密钥?我可以阅读文档,但它并没有帮助我了解如何执行我尝试执行的操作。我不知道如何告诉它“使用这个动态生成的url,然后在此基础上生成一个简短的url”,这样您就生成了一个api密钥,并使用该url作为参数调用服务。很抱歉,这对我没有任何帮助。我已经有了一个由bitly分配的api密钥…所以我已经准备好了
// get the cart
if (typeof Shopify === 'undefined') var Shopify = {};
Shopify.cart = {{ cart | json }};
Shopify.idsInCart = [];
Shopify.quanInCart = [];


//where we gonna put the url
var cartURL = document.getElementById('cart_url');

// for every item in Shopify Cart - push to idsInCart and print the IDs to the cart url
for (var i=0; i<Shopify.cart.items.length; i++) {
  Shopify.idsInCart.push(Shopify.cart.items[i].id);
  cartURL.innerHTML += 'id[]=' + Shopify.idsInCart[i] + '&';  
}
// get the div with cartURLform as an id
var longUrlNode = document.getElementById('cartURLform'),
    // grab the .textContent from that div
    textContent = longUrlNode.textContent;

// 
var uri = longUrlNode.textContent;
var res = encodeURI(uri);



// Copy to clipboard example
document.querySelector("#qlink").onclick = function() {
  // Select the content
  document.querySelector("#qlink").select();
  // Copy to the clipboard
  document.execCommand('copy');
};



(function(long_url,callback){
  bi = new URL("https://api-ssl.bitly.com/v3/shorten?");
  var params = [
    "login=__obviously__",
    "domain=bit.ly",
    "apiKey=__obviously__",
    "longUrl="+ encodeURIComponent(long_url)
  ]
  bi.search = "?"+params.join('&')
  var xhr = new XMLHttpRequest();
  xhr.onreadystatechange=function () {
    if (xhr.readyState === 4) {
      if (xhr.status === 200) {

        var res = JSON.parse(xhr.responseText);
        callback(res["data"]["url"]);

        //           document.getElementById("qlink").value = JSON.parse(xhr.responseText);


      } else {
        alert('There was a problem with the request.');
      }
    }
  }
  xhr.open("GET",bi.toString());
  xhr.send(null)

})(res,function(a){

  //       prompt("hello", a);
  document.getElementById("qlink").value = a;

});