2016-01-09 3 views
1

Вот очень краткая история того, что я хочу сделать. Мне нужно создать очень маленький блок JavaScript, который будет предоставлен многим веб-сайтам для встраивания в их домашние страницы. Затем, когда посетители попадают на эти домашние страницы, URL-адрес будет автоматически вызван, который собирает определенные статистические данные и возвращает небольшое изображение. У меня есть некоторые из этого на месте уже следующим образом:Использование JavaScript для динамического создания HTML на странице загрузки

 <script> 
      /* Determine if there is a cookie already exists and get its value if not. */ 
      var userId; 
      match = document.cookie.match(new RegExp("someUserId" + '=([^;]+)')); 
      if (match) 
       userId = match[1]; 
      else { 
       /* generate a random 10 character string */ 
       userId = (Math.random() + 1).toString(36).substring(5, 15); 

       /* Store this as a cookie value */ 
       <needs to be done> 
      } 

      /* This is what I need help with. A page is called when the home page loads to collect some stats and return a small image */ 
      <a href="http://www.SomeAnalysisSite.com/"><img src="http://www.SomeAnalysisSite.com/Log/[email protected]=xxx" alt=""/></a> 
     </script> 

Кусок я не знаю, как сделать, это самая последняя строка (с IMG тега). Мне нужно сгенерировать это динамически и вставить в DOM (я думаю) после создания значения «userId», чтобы он мог быть включен как параметр запроса в URL-адрес img src. Или, может быть, есть лучший способ? Конечно, я сделаю это, прежде чем он будет отправлен на сторонние веб-сайты.

ответ

2

Заменить последнюю строку с:

document.write('<a href="http://www.SomeAnalysisSite.com/"><img src="http://www.SomeAnalysisSite.com/Log/[email protected]=' + userId + '" alt=""/></a>'); 

И проверить, если вы имеете в виду поставить & вместо @ в строке выше.

0
  1. создать userId;
  2. создать URL-адрес с новым userId;
  3. создать новый элемент img: document.createElement ('img');
  4. Вставить новый атрибут src img.setAttribute ('src', imgUrl);
  5. создать новый элемент: document.createElement ('a');
  6. Вставить новый атрибут href link.setAttribute ('href', linkUrl);
  7. Вставить «img» внутри «a» link.appendChild (img);
  8. вставить «в» элемент в DOM внутри элемента «somediv»

var userId; 
 

 
/*1*/ 
 
userId = (Math.random() + 1).toString(36).substring(5, 15); 
 
var siteUrl = "http://www.SomeAnalysisSite.com/" 
 
/*2*/ 
 
var imgUrl = siteUrl + "Log/[email protected]=" + userId; 
 
var linkUrl = siteUrl; 
 
/*3*/ 
 
var img = document.createElement('img'); 
 
/*4*/ 
 
img.setAttribute('src', imgUrl); 
 
/*5*/ 
 
var link = document.createElement('a'); 
 
/*6*/ 
 
link.setAttribute('href', linkUrl); 
 
/*7*/ 
 
link.appendChild(img); 
 
/*8*/ 
 
document.getElementById("somediv").appendChild(link);
<html> 
 

 
<body> 
 
    
 
    <div id="somediv"> 
 
</body> 
 

 
<script> 
 
</script> 
 

 
</html>

+0

Хотя код может решить эту проблему, это не очень полезно для понимания проблемы , можете ли вы объяснить, что вы сделали, и как новый добавленный код решает исходную проблему. – Ferrybig

Смежные вопросы