2011-10-25 89 views
2

我有一个JavaScript,我希望我的用户能够放在他们的网站上。在这个JavaScript中,我想要生成一个简单的按钮,即位于JavaScript已被粘贴到网站的确切位置。我怎样才能做到这一点?这很简单,如果我可以给我的<script>标记一个id,然后获取具有特定ID的元素并追加它,但我不能。在脚本标记后添加按钮

例如,如果我有这样的事情:

<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 divlast div之间放置(之前或script标签之后,它并不重要)。我可以这样做吗?

+0

是一个iframe出了问题吗?或'data-'属性?或角色属性? – Val

+0

iframe肯定是的。除此之外,所有在主流浏览器中都有效的东西。 –

回答

5

你能不能用after -

$("div:contains('test div')").after('<input type="button"/>'); 

这显然会更好,如果你可以给“DIV”的ID或类,而不是由它包含的文本找到它。

jQuery的可以用找到的脚本标签 -

$("script[src='embed.js']").after('<input type="button"/>') 

演示 - http://jsfiddle.net/7GPx7/1

+0

这只是一个例子,我想获取脚本元素,而不是它之前的'div',这可能导致在一个站点上它不会是我的脚本元素之前的'div',也许它会是' p'或其他东西。 –

+0

确定 - 已更新的答案。 – ipr101

+0

谢谢,作品像一个魅力。 –

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

我正在处理我的embed.js脚本中的jQuery加载(如果尚未加载)。所以我想毕竟是给一个'script'标记一个'id'。谢谢。 –