2013-03-07 187 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