#javascript #jquery
#javascript #jquery
Вопрос:
У меня есть javascript, который я хочу, чтобы мои пользователи могли размещать на своих сайтах. В этом javascript я хочу сгенерировать простую кнопку, которая находится именно там, где javascript был вставлен на сайт. Как я могу это сделать? Было бы просто, если бы я мог присвоить своему <script>
тегу идентификатор, а затем просто получить элемент с определенным идентификатором и добавить его после него, но я не могу.
Например, если у меня есть что-то вроде этого:
<body>
<p>test para</p>
<p>test para</p><p>test para</p><p>test para</p>
<p>test para</p>
<div>test div</div>
<script src="embed.js" type="text/javascript"></script>
<div>last div</div>
</body>
Я хочу, чтобы моя кнопка была размещена прямо между test div
и last div
(до или после script
тега, это не имеет значения). Могу ли я это сделать?
Комментарии:
1. о iframe не может быть и речи? или
data-
атрибут? или атрибут роли ?2. iframe определенно да. кроме этого, все, что работает в основных браузерах.
Ответ №1:
Не могли бы вы просто использовать after
—
$("div:contains('test div')").after('<input type="button"/>');
Очевидно, было бы лучше, если бы вы могли присвоить «div» идентификатор или класс, а не находить его по тексту, который он содержит.
jQuery может найти тег скрипта с помощью —
$("script[src='embed.js']").after('<input type="button"/>')
Демонстрация — http://jsfiddle.net/7GPx7/1
Комментарии:
1. Это был только пример, я хочу получить
script
элемент, а неdiv
предшествующий ему, потому что, возможно, на одном сайте он не будетdiv
перед моим элементом скрипта, может быть, это будетp
или что-то еще.
Ответ №2:
встраивание JavaScript что вы можете учитывать, так это то, что у ваших посетителей может не быть включен jQuery на их сайтах, поэтому вы можете раздуть вызов, загрузив jQuery или сконструировав свое требование на чистом JavaScript.
Встраиваемый фрагмент для ваших посетителей
<script id="eduard_luca" src="http://cdn.example.com/embed.js" type="text/javascript"></script>
embed.js
var element = document.createElement('a');
element.setAttribute('href','http://google.com');
element.innerHTML = 'Click Me';
document.getElementById("eduard_luca").appendChild(element);
Я надеюсь, что это поможет вам в вашем проекте.
Комментарии:
1. Я обрабатываю загрузку jQuery в моем embed.js скрипт (если он еще не загружен). Так что я думаю, что предоставление
script
тега anid
в конце концов нормально. Спасибо.