добавить текстовый ввод в конце URL - PullRequest
0 голосов
/ 17 апреля 2011

У меня есть простая HTML-страница с текстовым полем, кнопкой и элементом div. Я хочу, чтобы пользователь ввел символ акции в поле. Когда они нажимают кнопку отправки, изображение графика будет отображаться внутри div.

Графики уже существуют @ http://ichart.finance.yahoo.com/w?s=

Чтобы получить график для конкретного символа, мне нужно добавить символ, '&' и большое случайное число. Это рабочий пример

http://ichart.finance.yahoo.com/w?s=YHOO&1234567890

Я не могу сделать так, чтобы символ, & и случайное число добавлялись в конец URL. Я также не уверен, правильно ли я использую форму.

Вот код:

    function changeChart() {
    var rand_no = Math.random();
    rand_no = rand_no * 100000000;
    var sym = document.myform.symbol.value;
    document.getElementById('divService').innerHTML = '<' + 'object id="foo" name="foo" type="text/html" data="http://ichart.finance.yahoo.com/w?s="' + sym + '"&"' + rand_no + '"><\/object>';
}

<form name = "myform">
<p>
  Enter stock symbol
  <input id="Text1" type="text" name="symbol"/>
  <input type="button" value="Go" name="Submit" onclick="changeChart(this); return false;"/>
</p>

<div id="divService">
  <object id="foo" name="foo" type="text/html" data="http://www.aol.com/"></object>
</div>


Вот полный код, здесь CSS не будет отображаться должным образом. https://docs.google.com/document/d/1pq39BKxWRqDS162jWss7-fvTbr0r28wq4VFiedh8SCY/edit?hl=en

Ответы [ 2 ]

1 голос
/ 17 апреля 2011

Я проверил всего несколько минут назад, и, похоже, нет необходимости в &1234567890 -подобной части URL, поэтому я бы изменил код, чтобы получить это:

function changeChart() {
  var sym = document.forms[0].elements['symbol'].value;
  var divContent = '<'+'object id="foo" name="foo" type="text/html" data="http://ichart.finance.yahoo.com/w?s=' + sym +'"/>';
  document.getElementById('divService').innerHTML = divContent;
}

Учитывая, что случайное число не обязательно, и в коде HTML:

<form name = "myform">
<p>
  Enter stock symbol
  <input id="symbol" type="text" name="symbol"/>
  <input type="button" value="Go" name="Submit" onclick="changeChart(); return false;"/>
</p>

<div id="divService">
  <object id="foo" name="foo" type="text/html" data="http://www.example.com/"></object>
    </div>
</form>

Обратите внимание, что теперь id имеет то же значение, что и name для ввода текста, и удаленный аргумент this для вызова функции. Я надеюсь, это поможет вам. ( Обновление : проверено OK на jsFiddle и вот результат )

0 голосов
/ 17 апреля 2011

Когда вы делаете случайное число, используя Math.random, Javascript возвращает двойное число.Когда вы помещаете это случайное число в URL, вы хотите, чтобы оно было строкой.Попробуйте изменить первую строку changeChart на это:

var rand_no = String(Math.random() * 1000000);
...