2012-04-04 56 views
5

Có thể thay đổi thuộc tính "src" của phần tử <script> hiện tại bằng Jquery.attr() không? Nó có vẻ giống như một cách đơn giản để làm cho JSONP hoạt động nhưng tôi không thể thực hiện công việc này cho tôi.Thay đổi thuộc tính "src" của <script>

+0

Tại sao không chỉ thêm phần tử tập lệnh mới vào vị trí vòm? –

Trả lời

15

Nó chỉ ra rằng tập lệnh src có thể chỉ được đặt sau! Không thể thay đổi thuộc tính src của phần tử <script> hiện tại trong DOM. Tuy nhiên, phần tử <script> được tạo động có thể có nguồn gốc của nó (nhưng chính xác một lần!)

+2

Tôi biết đây là câu trả lời cũ nhưng bạn có bất kỳ liên kết nào để hỗ trợ điều này không. Tôi đang gặp một vấn đề tương tự và không có gì hoạt động cho đến nay. bất kỳ tài liệu đọc nào về điều này chắc chắn sẽ hữu ích. – ChickenWing24

3

Nếu bạn đang cố gắng tải tập lệnh, thay vào đó bạn có thể sử dụng getScript.

http://api.jquery.com/jQuery.getScript/

Hoặc, nếu bạn muốn thay đổi src vì lý do khác, vì thẻ script không thể có id, bạn có thể sử dụng một hoặc HTML5 Tuân data-id thuộc tính, hoặc kết hợp sử dụng src hiện có. Sau đó, bạn chỉ có thể thay đổi giá trị src bằng cách sử dụng attr. Nhưng điều này có thể không tải tập lệnh trên tất cả các trình duyệt.

+0

* "vì thẻ tập lệnh không thể có id," * Chắc chắn chúng có thể, bất kỳ điều gì khiến bạn nghĩ khác đi ?! –

3

Trong khi, có, điều này là có thể, bạn không cần phải thực hiện việc này theo cách thủ công vì jQuery có hỗ trợ tích hợp sẵn cho các yêu cầu JSON-P. Xem tài liệu cho các phương pháp $.getJSON$.ajax.

+1

Đây không phải là câu hỏi. Câu hỏi đặt ra là "bạn có thể thay đổi src chút nào không nếu thẻ tập lệnh tồn tại từ trước?" –

+1

Lòng biết ơn tốt đẹp. Đọc lại câu hỏi của bạn; nó đọc như ai đó muốn làm JSON-P nhưng nghĩ rằng họ phải làm điều đó bằng tay. Nếu bạn muốn làm điều đó bằng tay, hãy xem câu trả lời của Aram. –

+3

Không phải là vấn đề không có lòng biết ơn - bạn giải thích câu hỏi sai. Câu hỏi không phải là về cách làm JSONP trong JQ, đó là một điểm kỹ thuật về việc thay đổi kịch bản src. Câu trả lời của bạn không hữu ích. –

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