2013-03-07 182 views
6

使用案例:我的模板生成器的工作application.A用户可以使用诸如文本框,图片框,幻灯片等添加/追加“<script>”标签使用JavaScript/jQuery的为html

不同的组件构建HTML模板

期:我们面临的问题是幻灯片组件。我们使用nivoslider插件来构建它。滑块必须具有像用户可以更改转换时间,选择转换等设置。用户可以添加更多比幻灯片放映。
现在的问题是我们添加多个幻灯片,每个幻灯片可能都有自己的参数,所以我们不能拥有一个通用的函数。同样,用户可以回来编辑模板,所以我们需要为每个幻灯片。

Reasearch:我们的基本结构的工作,而是停留在一个place.We需要一个script标签附加到每个幻灯片由用户添加到页面。

return '<div id="slider" class="nivoSlider">'+ 
      '<div class="">'+ 
       '<img id="" class="image mover" style="position:absolute;left:0px;top:0px;" src="http://localhost/gobiggi_VS_2_2/images/slideShow/slide01.jpg" data-thumb="images/slideShow/thumb/slide01.jpg" alt="" />'+ 
      '</div>'+ 
      '<div class="">'+ 
       '<img id="" class="image mover" style="position:absolute;left:0px;top:0px;" src="http://localhost/gobiggi_VS_2_2/images/slideShow/slide02.jpg" data-thumb="images/slideShow/thumb/slide02.jpg" alt="" />'+ 
      '</div>'+ 
      '<div class="">'+ 
       '<img id="" class="image mover" style="position:absolute;left:0px;top:0px;" src="http://localhost/gobiggi_VS_2_2/images/slideShow/slide03.jpg" data-thumb="images/slideShow/thumb/slide03.jpg" alt="" />'+ 
      '</div>'+ 
      '<div class="">'+ 
       '<img id="" class="image mover" style="position:absolute;left:0px;top:0px;" src="http://localhost/gobiggi_VS_2_2/images/slideShow/slide04.jpg" data-thumb="images/slideShow/thumb/slide04.jpg" alt="" />'+ 
      '</div>'+ 
     '</div>'+'<script>$("#slider").nivoSlider({effect: "sliceDown",animSpeed: 500,pauseTime: 3000,startSlide: 0,controlNavThumbs: true,controlNavThumbsFromRel:true, pauseOnHover: true,manualAdvance: false});</script>'; 

的代码末尾的script标签是我们正在试图追加到HTML,并将其保存到database.We试过有一个空白<div id="temp"></div>并在其追加脚本标记,但我相信jQuery执行脚本,并不保存它,所以我们得到一个空白的div。我们如何将脚本标记存储在HTML结构中并将其保存到数据库?

+2

'可以有自己的参数,所以我们不能有一个共同的function.' - 你不能让一个函数接受这些参数来区分滑块吗? – Andy 2013-03-07 14:22:45

+0

即使每个参数都可以有单独的参数,您仍然可以拥有一个函数。只需允许用户从参数列表中进行选择,然后在功能内考虑所有参数。如果用户没有选择参数,则将其排除在外 – 2013-03-07 14:23:30

+1

如果您添加多个参数,它也会失败,因为您只能在页面上拥有一个ID。 ID是奇异的! – epascarello 2013-03-07 14:26:17

回答

5

不是直接写出脚本标记,而是将其创建为对象,然后附加它。当您直接创建元素而不是传递字符串时,浏览器应该尊重它。

var script = document.createElement("script"); 
script.type = "text/javascript"; 
script.src = "scriptname.js"; 
$("#temp").append(script); 

然后,你可以把你想要在外部脚本文件来执行JavaScript,它应该正常工作

+0

是ben试过了,但问题是我必须稍后将它发布(即保存它)到用户创建的不同域,所以我想要它内联而不是外部!任何其他解决方法?谢谢您的答复 – KillABug 2013-03-08 04:13:52