как вывести только динамическую ссылку из случайной функции? - PullRequest
0 голосов
/ 10 декабря 2010

Я хочу извлечь только динамическую ссылку, но не весь объект отсюда:

    function random_imglink(){
      var myimages=new Array()
      //specify random images below. You can have as many as you wish
      myimages[1]="/documents/templates/bilgiteknolojileri/standalone.swf"
      myimages[2]="/documents/templates/bilgiteknolojileri/mobil.swf"
      myimages[3]="/documents/templates/bilgiteknolojileri/3b2.swf"

      var ry=Math.floor(Math.random()*myimages.length)

      if (ry==0)
         ry=1
         document.write('<embed wmode="transparent" src="'+myimages[ry]+'" height="253" width="440"></embed>')
    }   
    random_imglink()

Я имею в виду, чтобы сделать что-то вроде динамической ссылки $ random_link $, чтобы я мог поместить ее в HTML-кодкак

<embed wmode="transparent" src="$random_link$" height="253" width="440"></embed>

Ответы [ 2 ]

0 голосов
/ 10 декабря 2010
function randomItem(theArray) {
    return theArray[Math.floor(theArray.length * Math.random())];
}

myImages = ["some","image","paths"];

var theFlashElement = '<embed wmode="transparent" src="' + randomItem(myImages) + '" height="253" width="440"></embed>';

document.getElementById("flashContainerId").innerHTML = theFlashElement;
0 голосов
/ 10 декабря 2010

У меня проблемы с выяснением того, что вы спрашиваете, но если вы хотите получить только ссылку из функции (возможно, в качестве возвращаемого значения), чтобы уйти от document.write (почти всегда хорошая идея, чтобы уйти от этого), то:

function random_imglink(){
  var myimages=new Array()
  //specify random images below. You can have as many as you wish
  myimages[1]="/documents/templates/bilgiteknolojileri/standalone.swf"
  myimages[2]="/documents/templates/bilgiteknolojileri/mobil.swf"
  myimages[3]="/documents/templates/bilgiteknolojileri/3b2.swf"

  var ry=Math.floor(Math.random()*myimages.length)

  if (ry==0) {
     ry=1;
  }
  return  myimages[ry];
}   
alert(random_imglink()); // alerts one of the three paths above

Не по теме: Вот эта функция убрала некоторые:

function random_imglink(){
  //specify random images below. You can have as many as you wish
  var myimages = [
      "/documents/templates/bilgiteknolojileri/standalone.swf",
      "/documents/templates/bilgiteknolojileri/mobil.swf",
      "/documents/templates/bilgiteknolojileri/3b2.swf"
  ];

  return myimages[Math.floor(Math.random()*myimages.length)];
}   
alert(random_imglink()); // alerts one of the three paths above

Изменения:

  1. Не полагайтесь на вставку точек с запятой, вы никогда не сможете минимизировать свои сценарии (а это в любом случае порождение дьявола).
  2. Использовать литерал массива.
  3. Используйте индексы 0..2 вместо 1..3
  4. В результате № 3 уменьшаем сложность генерации индекса

Я не учел общую часть путей в предположении, что могут быть добавлены другие, которые не имеют этой общей части (/documents/templates/bilgiteknolojileri/). Если пути всегда начинаются с этого, то, очевидно, вы можете уменьшить размер скрипта, перечислив его только один раз, а затем добавив изменяемый бит.

...