从Java Script </script>中的文本框动态地将用户输入附加到<script src =“”>

时间:2012-03-08 19:44:30

标签: javascript javascript-events youtube-api

我是Java Script的新手,我尝试在线搜索我的问题的解决方案,但没有成功。

我需要在按下一个按钮后,将文本框中的用户输入附加到脚本的'src'属性&gt;同一文件中的元素。我怎么能这样做?

<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

4 个答案:

答案 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>

示例:http://jsfiddle.net/powtac/SvaXc/2/

答案 2 :(得分:0)

我不完全确定你想要实现的是什么,但这里有几种技巧:

  1. 动态检索您需要的JavaScript(通过AJAX调用)并使用eval()调用它 - &gt;这解释并执行JavaScript代码。这可能非常危险,所以请谨慎行事。

  2. 动态添加&lt; script&gt;将src设置为所需脚本的元素,并将此元素追加到文档的元素中。

  3. 如果您正在使用jQuery,则可以使用$ .getScript()函数动态检索和执行JavaScript。

  4. 看看这个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 ));

希望这会有所帮助。