【问题标题】:how can i write dynamic javascript我如何编写动态javascript
【发布时间】:2010-04-09 05:33:34
【问题描述】:

我如何编写动态 javascript 任何简单的示例或任何参考。 谢谢你

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

    <script type="text/javascript" src="swfobject.js"></script>

<div id="flashPlayer">

</div>

<script type="text/javascript">




   var so = new SWFObject("playerSingle.swf", "mymovie", "192", "67", "7", "#FFFFFF");
   so.addVariable("autoPlay", "yes");
   so.addVariable("soundPath","song.mp3");
   so.addVariable("overColor","#000044")
   so.addVariable("playerSkin","1") 
   so.write("flashPlayer");


</script>
    </div>

    </form>
</body>
</html>

【问题讨论】:

  • 动态javascript是什么意思?
  • 要执行动态JS语句吗?
  • 是的,实际上我在我的应用程序中放置了一个音频播放器。当我将音频文件直接放入其中时它工作正常,但在我的应用程序中我必须动态播放它,即音频文件将来自请求参数。当我向玩家的技术团队寻求支持时,他们告诉我如果你愿意我可以编写动态 javascript 代码
  • 你不是 Meta 上提到的那个从事商业工作并试图滥用 stackoverflow 社区为你做这项工作的人吗?
  • 不,我没有问任何元问题,我根本没有滥用 stackoverflow,我尊重所有 stackoverflow 成员

标签: asp.net javascript


【解决方案1】:

这是一个非常广泛的问题。

如果您的意思是如何使用 javascript 设置 swf 对象的音频文件参数,那么如果我们采用您已有的代码并假设您的 URL 类似于 http://mydomain.com/musicplayer.html?audio=mysong.mp3,那么在 @987654322 有一个库@这可以提供帮助。使用它应该会产生类似这样的结果:

<script type="text/javascript">

   //assign variable to querystring
   var qs = new Querystring()

   //retrieve the parameter you want
   var requestedFile = qs.get("audio", "defaultsong.mp3")

   var so = new SWFObject("playerSingle.swf", "mymovie", "192", "67", "7", "#FFFFFF");
   so.addVariable("autoPlay", "yes");
   so.addVariable("soundPath",requestedFile);
   so.addVariable("overColor","#000044")
   so.addVariable("playerSkin","1") 
   so.write("flashPlayer");


</script>

【讨论】:

    【解决方案2】:

    如果你想使用 ASP.NET 来解析查询字符串而不是 javascript,这样的东西应该可以工作:

    <script type="text/javascript">
    
       var so = new SWFObject("playerSingle.swf", "mymovie", "192", "67", "7", "#FFFFFF");
       so.addVariable("autoPlay", "yes");
       so.addVariable("soundPath", '<%= Request.QueryString["song"] %>');
       so.addVariable("overColor","#000044")
       so.addVariable("playerSkin","1") 
       so.write("flashPlayer");
    
    </script>
    

    但是,如果您这样做,您将遇到安全漏洞 - 定制的 URL 可能会将任何内容嵌入到您页面上执行的 javascript 中,包括恶意代码。您应该使用 AntiXSS 库对查询字符串中的值进行 javascript 编码,然后再将其插入客户端 javascript。

    【讨论】:

      【解决方案3】:

      我会将您的问题解释为动态生成 Javascript,然后执行它。如果您使用的是 Java 6,那么您可以这样做

      ScriptEngineManager mgr = new ScriptEngineManager();
      ScriptEngine js = mgr.getEngineByExtension("js");
      try {
         js.eval("print('Hello, world!')");
      } catch (Exception e) { }
      

      如果你需要生成非常复杂的JavaScript代码,我建议你使用StringTemplate这样的模板库

      【讨论】:

      • 感谢李楚先生的回复,我现在发表评论,您可以查看评论吗
      • 好的,你上面的问题也不是很清楚。我将把它解释为您想在网页中动态生成 JS,然后将该网页返回给您的用户。如果您在 Java 中执行此操作,一种简单的方法是创建到 /myapp/dymamicpage 的 servlet 映射。然后你要做的是使用 StringTemplate 生成 JS 代码,将内容类型设置为 'text/html' 并返回给你的用户。
      • 错过了关于查询字符串的部分。因此,如果您有类似 /myapp/dymamicpage?movefile=movie.avi 的内容,请使用 HttpServletRequest.getParameter("moviefile") 检索参数
      • 我使用的是 .net 而不是 java Mr.Chuk Lee
      【解决方案4】:

      假设您有这个网址:

      http://www.myplayer.com&song=mysong.mp3

      被重定向到此页面,您想播放 mysong.mp3。

      在 javascript 中,您可以使用 window.location.href 属性读取 url。您需要自己解析它才能提取歌曲。

      这个link 可以帮助你进行解析。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-01-30
        • 2010-11-27
        • 2021-06-16
        • 2011-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多