我是Java Script的新手,我尝试在线搜索我的问题的解决方案,但没有成功。
我需要在按下一个按钮后,将文本框中的用户输入附加到脚本的'src'属性>同一文件中的元素。我怎么能这样做?
<script id="url " type="text/javascript" src="http://gdata.youtube.com/feeds/api/videos?q=USER INPUT&alt=json-in-script&callback=showMyVideos2&max-results=30&format=5">
</script>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Search" OnClick= ? />
非常感谢你的帮助 Suman Moorthy
答案 0 :(得分:1)
我道歉但你的问题有点不清楚。 如果我正确地得到它,你只想“添加”脚本标签的src属性,无论用户写入文本框,这是正确的吗? 如果是这种情况,我会沿着这条线做点什么:
(function( doc, $ ){
$.call( doc, 'Button1' ).addEventListener( 'click', function() {
var script = $.call( doc, 'url' );
script.src += $.call( doc, 'TextBox1' ).value;
});
}(document, document.getElementById ));
PS:我给文档和documentElementById函数别名以保存一些字符..
答案 1 :(得分:0)
<input type="text" id="user_input" />
<div id="start">START</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javasscript">
$(document).ready(function() {
$('#start').on('click', function() {
$.getScript('http://gdata.youtube.com/feeds/api/videos?q='+$('user_input').val()+'&alt=json-in-script&callback=showMyVideos2&max-results=30&format=5');
})
})
</script>
答案 2 :(得分:0)
我不完全确定你想要实现的是什么,但这里有几种技巧:
动态检索您需要的JavaScript(通过AJAX调用)并使用eval()调用它 - &gt;这解释并执行JavaScript代码。这可能非常危险,所以请谨慎行事。
动态添加&lt; script&gt;将src设置为所需脚本的元素,并将此元素追加到文档的元素中。
如果您正在使用jQuery,则可以使用$ .getScript()函数动态检索和执行JavaScript。
看看这个Stack Overflow问题:
How to dynamically insert a <script> tag via jQuery after page load?
虽然陈旧,但这里有一些很好的描述:http://unixpapa.com/js/dyna.html
答案 3 :(得分:0)
如果你需要动态创建一个新的脚本标签(然后你可以删除你在标记中提供的标签),你可以这样做(我在这里使用jQuery来简化代码,否则我的帖子会变得不必要了):
(function($){
$(document.body).append( '<script src="' + $('#TextBox1').val() + '">' );
}(jQuery));
如果你不能(或想要)使用jQuery,你可以这样做:
(function(doc, $) {
window.addEventListener('load', function() {
var dynScript = doc.createElement('script');
dynScript.setAttribute('src', $.call( doc, 'TextBox1' ).value );
doc.body.appendChild( dynScript );
} );
}(document, document.getElementById ));
希望这会有所帮助。