2013-03-07 30 views
6

Trường hợp sử dụng: Tôi đang làm việc trên một công cụ tạo mẫu application.A người dùng có thể xây dựng các mẫu html sử dụng các thành phần khác nhau như hộp văn bản, hộp hình ảnh, slideshow, vvAdd/append '<script>' thẻ để sử dụng html javascript/jquery

vấn đề: vấn đề chúng ta đang phải đối mặt là với component.We chiếu đang sử dụng một plugin nivoslider để xây dựng trượt it.The phải có các cài đặt như người dùng có thể thay đổi thời gian chuyển đổi, chọn chuyển tiếp etc.The người dùng có thể bổ sung thêm so với trình chiếu.
Bây giờ vấn đề là khi chúng tôi thêm nhiều trình chiếu, mỗi người có thể có thông số riêng cho nó, vì vậy chúng tôi không thể có một hàm chung. Ngoài ra, người dùng có thể quay lại để chỉnh sửa mẫu, vì vậy chúng tôi cần có tập lệnh độc lập cho mỗi trình chiếu.

Reasearch: Chúng tôi có cấu trúc cơ bản hoạt động nhưng bị kẹt ở một nơi. Chúng tôi cần thêm một thẻ script vào mỗi trình chiếu được người dùng thêm vào trang.

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>'; 

Các script tag vào cuối của mã này là những gì chúng tôi đang cố gắng để phụ thêm vào HTML và lưu nó vào database.We cố gắng có một trống <div id="temp"></div> và phụ thêm thẻ script trong nó, nhưng Tôi tin rằng jQuery thực thi tập lệnh và không lưu nó để chúng tôi nhận được div trống. Làm cách nào chúng tôi có thể lưu trữ thẻ tập lệnh trong cấu trúc HTML và lưu nó vào cơ sở dữ liệu?

+2

'có thể có các thông số riêng của mình cho nó, vì vậy chúng tôi không thể có một function.' chung - bạn không thể thực hiện một chức năng chấp nhận các tham số để phân biệt giữa các thanh trượt? – Andy

+0

Ngay cả khi mỗi có thể có tham số riêng biệt, bạn vẫn có thể có một chức năng. Chỉ cho phép người dùng chọn từ danh sách các tham số và sau đó giải thích cho tất cả chúng trong hàm. nếu người dùng không chọn một tham số, thì nó sẽ bị loại trừ –

+1

Nó cũng sẽ thất bại nếu bạn thêm nhiều hơn một vì bạn chỉ có thể có MỘT id trên trang. Id là số ít! – epascarello

Trả lời

5

Thay vì viết trực tiếp thẻ tập lệnh, hãy tạo thẻ đó làm đối tượng và sau đó nối thêm. Trình duyệt nên tôn trọng nó khi bạn đã tạo phần tử trực tiếp thay vì truyền cho nó một chuỗi.

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

Sau đó, bạn có thể chỉ cần đặt javascript bạn muốn thực hiện trong các tập tin kịch bản bên ngoài và nó sẽ làm việc tốt

+0

Có ben đã thử nó, nhưng vấn đề là tôi phải sau đó xuất bản nó (tức là lưu nó) để tên miền khác nhau được tạo ra bởi người dùng, vì vậy tôi muốn có nó nội tuyến thay vì bên ngoài Bất kỳ công việc khác xung quanh? – KillABug

Các vấn đề liên quan