2013-04-02 22 views
9

Tôi sẽ làm nổi bật điều này với: "Tôi biết đây là thực hành không tốt và một bản hack xấu xí (và tôi xin lỗi) nhưng ..."Cấp độ thứ ba của trích dẫn thoát trong HTML và JavaScript

I ' m sử dụng tiện ích chú giải công cụ jQuery Tool để hiển thị chú giải công cụ trên phần tử html khi người dùng di chuột qua nó. Với tiện ích này, bạn thêm html của tooltip vào thuộc tính title của phần tử.

Bên trong html đó tôi có một phần tử mà tôi muốn kết buộc một trình xử lý sự kiện nội tuyến onclick.

Rất tiếc, tôi đã chạy quá nhiều lớp dấu ngoặc kép để chuyển một tham số đến hàm tôi đang cố gắng gọi.

Tôi có một cái gì đó như thế này:

<div title="<div onclick='myFunction(_____)'>My tooltip content</div>">My element</div> 

này hoạt động nếu tôi cần phải vượt qua một số nguyên để myFunction vì nó không cần một bộ dấu ngoặc kép. Rất tiếc, tôi muốn chuyển một chuỗi đến myFunction. Làm thế nào tôi có thể tiếp tục thoát khỏi tham số chuỗi này để nó không đóng onclick hoặc chuỗi title?

+2

Kiểm tra câu hỏi tương tự tại đây: http://stackoverflow.com/questions/2004168/javascript-escape-quotes – wilsjd

+0

Cảm ơn @wilsjd, đó thực sự là giải pháp làm việc. –

Trả lời

8

Bên trong các thuộc tính HTML, bạn nên mã hóa dấu ngoặc kép như những thực thể HTML, ví dụ .:

<div title="This says &quot;Hello!&quot;"> 
    Hello! 
</div> 
+0

Điều này đã hiệu quả. Bạn có thể giải thích nếu đây là một phần của HTML cho phép '& quot' được chạy như là dấu ngoặc kép thông thường trong một hàm JavaScript hoặc nếu đây là một số phép thuật được thực hiện bởi jQuery TOOL hoặc nếu nó là cái gì khác? –

+1

Nó không liên quan đến JavaScript. Đây chỉ là cách bạn sẽ thoát khỏi một dấu ngoặc kép trong một thuộc tính HTML được trích dẫn kép. Nó có thể so sánh với một cái gì đó như 'alert (" Điều này nói \ "Hello \" ")' trong JavaScript. –

+0

Genious, cảm ơn bạn. – Ansjovis86

0

tôi đã có thể tìm ra giải pháp cho vấn đề cụ thể của tôi. Không chắc chắn nếu điều này làm việc trong trường hợp chung hoặc nếu jQuery TOOLs đang làm một cái gì đó huyền diệu để unescape chuỗi của tôi nhưng tôi đã kết thúc thoát với &quot; và nó đã đánh giá vào Javascript hợp lệ đã được thực thi.

Something như thế này:

<div title="<div onclick='myFunction(&quot;_____&quot;)'>My tooltip content</div>">My element</div> 

Tôi không thực sự hiểu thế nào điều này đang làm việc để được trung thực. Sẽ yêu nếu ai đó có thể làm rõ những gì một phần của quá trình đang thay đổi những người &quot; s thành báo giá chức năng thực tế.

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