использование inner.html - PullRequest
       1

использование inner.html

0 голосов
/ 26 сентября 2011

Извините за странный формат этого вопроса. Я недавно задал пару похожих вопросов и все еще в растерянности. Я ДЕЙСТВИТЕЛЬНО не знаю, как работает большая часть этого, и я пытался следовать различным учебным пособиям и т. Д. В таких местах, как W3Schools.com, и с помощью людей здесь, и хотя я не до конца понимаю, я думаю, Я почти у цели.

То, что я пытаюсь сделать, это ТОЛЬКО воспроизводить фрагмент видео, если посетитель впервые попадает на сайт (но он немного особенный - он прозрачный и должен плавать на странице).

Приведенный ниже код правильно устанавливает cookie, если он не существует, и проверяет его при посещении сайта пользователем. У меня проблема с синтаксисом строки, которая начинается:

document.getElementById('video').innerHTML =

Если я прокомментирую эту строку, все остальные файлы cookie работают нормально, так что я надеюсь, что кто-то может помочь. ошибки, которые выдает консоль ошибок Firefox: неожиданный конец исходного кода xml и checkCookie не определены

Я также пытался разбрасывать кавычки по всему лоту, но это не имело никакого значения.

Вот код, и спасибо всем заранее. Роб.

<div id="video" style="position:absolute;top:125px;left:-67px;z-index:10000000"> </div>
<script src="AC_RunActiveContent.js" type="text/javascript"> </script>

<script type="text/javascript">
function getCookie(c_name)
{
  var i,x,y,ARRcookies=document.cookie.split(";");

  for (i=0;i<ARRcookies.length;i++)
  {
    x = ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
    y = ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
    x = x.replace(/^\s+|\s+$/g,"");

    if (x==c_name)
    {
      return unescape(y);
    }
  }
}

function setCookie(c_name,value,exdays)
{
  var exdate = new Date();
  exdate.setDate(exdate.getDate() + exdays);
  var c_value = escape(value) + ((exdays == null) ? "" : "; expires="+exdate.toUTCString());
  document.cookie=c_name + "=" + c_value;
}

function checkCookie()
{
  var username=getCookie("username");

  if (username!=null && username!="")
  {
    alert("Welcome again " + username);
  }
  else
  {
    username=prompt("Please enter your name:","");

    if (username!=null && username!="")
    {
      setCookie("username",username,7);
      document.getElementById('video').innerHTML = <script type="text/javascript"> AC_FL_RunContent ('codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0','width','320','height','220','id','HTIFLVPlayer','src','HTIFLVPlayer','flashvars','&MM_ComponentVersion=1&skinName=HTI_Skin&streamName=nigel&autoPlay=true&autoRewind=true','quality','high','scale','noscale','name','HTIFLVPlayer','salign','lt','pluginspage','http://www.macromedia.com/go/getflashplayer','wmode','transparent','movie','HTIFLVPlayer')</script>; 
    }
  }
}
</script>
<body onload="checkCookie()">
</body>

Ответы [ 2 ]

1 голос
/ 26 сентября 2011

Несколько вещей, которые могут или не могут привести вас к ответу:

Убедитесь, что возвращаемое значение из getElementById не является нулевым, прежде чем пытаться его использовать, например:

var el = document.getElementById('video')
if (el) {
  el.innerHTML = ...
}

Установка элемента сценария в качестве innerHTML элемента не приведет к выполнению сценария.

Лучший способ сделать это - поместить скрипт в отдельный файл и загрузить его, используя свойство src элемента script, например,

var script = document.createElement('script');
script.src = 'videoScript.js';  // or whatever you call the script file
el.appendChild(script);

В качестве альтернативы, вы можете установить скрипткак свойство .text элемента script, но это не будет работать в некоторых браузерах:

script.text = '...';
el.appendChild(script);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...