Как сформировать динамическую ссылку в JavaScript?

#javascript

#javascript

Вопрос:

Я хотел бы сформировать ссылку на стороне клиента.

Я думаю, что это должно быть urlencoded, но я довольно смущен этим. Правильно ли это?

 var link = document.createElement("a");

//addParams function just replaces the 0th and 1th occurrence with values 

a.link = url.addParams(valueO, value1); // url is /home/testpage.aspx?{0}={1}
  

Ответ №1:

Ответ №2:

Я думаю, вам следует сделать link.href = escape("<your url>"); плюс вам нужно добавить немного innerHTML — link.innerHTML = 'Click Here';

…и затем, наконец, добавьте ее на страницу в какой-то момент.

Комментарии:

1. но как насчет кодирования? обязательно ли нам явно обрабатывать это?

2. я согласен с вышесказанным. изменен пост.

3. AFAIK, escape() это не очень безопасно, поскольку работает только с ASCII. Кроме того, это оставит допустимый символ URI в строке запроса нетронутым, что может быть проблемой. Лучше всего кодировать каждую пару ключ-значение в строке запроса отдельно, используя encodeURIComponent() там, где это возможно.

Ответ №3:

 var link = document.createElement('a');

var href = document.createAttribute('href');

link.setAttribute(href,'http://www.example.com?' paramKey '=' paramValue);

link.innerText ="Go here";
  

Комментарии:

1. Firefox и некоторые другие браузеры используют textContent вместо innerText .