Добавить кнопку после тега скрипта

#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 тега an id в конце концов нормально. Спасибо.