如何使用javascript处理dataset.imagelink?

时间:2018-08-16 12:56:17

标签: javascript html

你好吗? 我到处都看过SO和Google(也向freenode #javascript寻求帮助),到目前为止一切顺利。也许有人可以帮助我。

我想做什么-我正在使用ClickFunnels(使用RoR构建),我需要从Cookie中获取一些值,并将它们作为按钮内的查询字符串链接的参数传递,图片。

我对javascript很陌生,所以我可能缺少明显的东西,但是freenode上的人们无法解决我的问题。 以下代码在 Google Chrome版本68.0.3440.106(正式版)(64位)上可以正常工作。这是我可以按预期运行此代码的唯一版本。

在最新版本的Google Chrome(台式机和移动版)和Firefox上,该代码无法正常运行。

// Try to use the Cookie stored data to switch &s1 e &aff_sub from CF Button href
	function getCookie()
	{
		// store cookie in var
		var insCookie = document.cookie;
		// split on ";"
		var cookieArr = insCookie.split(";");
		// creates the Obj
		var cookieObj = {}
		// iterates through the resulting array
		// for each arr el => trim() => split on "=" => store each key-value pair on an object
		for (var i = 0; i < cookieArr.length; i++)
		{
	    // do step 3
			//trim
			var cookieKV = cookieArr[i];
			cookieKV =  cookieKV.trim();

			// split on "="
			var cookieKVArr = cookieKV.split("=");

			// store kv on obj
			cookieObj[cookieKVArr[0]] = cookieKVArr[1];
		}
		return cookieObj;
	}
// starts to use what we got stored
	var obj = getCookie();
	var button = document.querySelectorAll("a.elButton");
	var my_btn = button[0];
	var href = my_btn.href;
// Starts to generate new button url based on cookie data
	href = href.replace(/#prod_geo#/g,obj.prod_geo).replace(/#prod_name#/g,obj.prod_name).replace(/#subprod_name#/g,obj.subprod_name).replace(/#offer_name#/g,obj.offer_name).replace(/#offer_device#/g,obj.offer_device);
  function ChangeUrl() {
    $("a[href*='#prod_geo#']").attr("href",href);
  };
  var img = document.querySelectorAll("img.elIMG");
  var my_img = img[1];
  var img_href = my_img.dataset.imagelink;
// Starts to generate new img url based on cookie data
  var new_img_href = img_href.replace(/#prod_geo#/g,obj.prod_geo).replace(/#prod_name#/g,obj.prod_name).replace(/#subprod_name#/g,obj.subprod_name).replace(/#offer_name#/g,obj.offer_name).replace(/#offer_device#/g,obj.offer_device);

  window.onload = function() {
  ChangeUrl();
  // change url for the image
  my_img.dataset.imagelink = new_img_href;
  };

问题-发生的情况是,页面完全加载后,浏览器会自动重定向到按钮/图像内的链接。参数会按原样发送,但我不想自动重定向用户,我只想构建链接,因为一旦用户单击按钮/图像,链接就应该如此。

我的想法-我猜问题出在更改图像上的参数时。如果仅更改按钮上的参数(甚至在代码中不提及图像),浏览器将不会自动重定向。因此,当我操作dataset.imagelink时,我一定做错了。我找不到任何有关此事的信息。

其他注意事项-这是我第一次尝试使用javascript做任何事情,因此请多多包涵。另外,我无法控制html元素的构建方式,因此我只需要处理已有的内容。 最后一件事,如果您需要更多信息,请告诉我。

预先感谢

Crova

0 个答案:

没有答案