#javascript
#javascript
Вопрос:
У меня есть форма, в которой пользователь вводит URL. Значение, полученное в результате этого ввода после его небольшой настройки, является переменной #url, которая сразу отображается пользователю.
Мне нужно, чтобы кнопки «Мне нравится» и «твитнуть» на моем сайте указывали на этот URL. Сделать их HREFS равными переменной #url
Это кнопки общего доступа:
<a id="twtbutton" href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" data-via="theclocktwt">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<fb:like id="fbbutton" send="false" layout="button_count" width="450" show_faces="false" font="" style="position: absolute; left:110px;"></fb:like>
</div>
Здесь вы можете увидеть, как это работает:http://www.chusmix.com/tests/magic.html
То, что отображается как «Улучшенная ссылка», — это URL, который я хочу использовать для кнопок общего доступа.
Комментарии:
1. В вашем вопросе не хватает многих деталей. Для чего нужно нажать клавишу? Чего вы пытаетесь достичь? Черт возьми, что это
cleanURL()
?
Ответ №1:
Это то, что вы хотите сделать —
var yourElement = document.getElementById('yourHref');
yourElement.setAttribute('href', '#url');
Комментарии:
1. -1 / 2 (округлено в меньшую сторону до 0). У него, очевидно, есть jQuery, поэтому используйте jQuery.
2. Имеет ли значение, есть ли у него jquery? Ответ работает, и в вопросе не сказано «используя jquery».
3. Пробовал это, и похоже, что это работает, но только в отладчике (Firefox). Не имеет значения, где я размещаю или вызываю скрипт, обновление не отражается в браузере. Итак, в отладчике я вижу обновленную ссылку, но отображаемая ссылка по-прежнему старая. Такое же поведение в IE, и оба они обновлены.
4. Спасибо, хотя я не знаю, почему вы вместо этого не сделали просто «document.getElementById(‘yourHref’).setAttribute(‘href’, ‘#url’);»
5. Я полагаю, что улучшенная разборчивость.
Ответ №2:
Обратитесь к следующей странице на сайте jquery:
Должна быть возможность использовать attr(‘href’, ‘value);
Комментарии:
1. @Liso22 Код будет выглядеть
$("a").attr("href","http://example.com");
очевидно example.com это новый URL, которым вы хотите заменить старый.
Ответ №3:
попробуйте это:
$("#url").keypress(
function(e) {
if(e.keyCode == 13) {
$("#output").attr('href', cleanURL($("#url").val()));
}
}
);
Комментарии:
1. Я только что попробовал это в jsfiddle, и это каким-то образом изменяет строку гиперссылки вместо URL, на который она указывает jsfiddle.net/Lisandro/LGwws/1
Ответ №4:
$('#twtbutton').prop('href', #url);
$('#fbbutton').prop('href', #url);
Это изменило бы свойство ‘href’ html-элемента (ов) с id = twtbutton и id=fbbutton на значение, хранящееся в #url, где значение, хранящееся в #url, является строковым типом данных. В этом ответе используется библиотека jQuery.
Комментарии:
1. Не могли бы вы дать некоторое объяснение этому ответу? 😀
2. Конечно, я наткнулся на эту тему, ища пример того, как изменить значение свойства ‘href’ для данного html-элемента на новое значение. Текущий ответ с самым высоким рейтингом не совсем сработал для меня, но когда я изменил свой код (используя jQuery, конечно) к показанному выше, у меня это сработало. Итак, я хотел предложить этот фрагмент на случай, если у кого-то еще возникнут проблемы с другими ранжированными ответами, как у меня.