2012-04-03 17 views
10

Nếu tôi tạo ra một số Javascript trong mã Scala của tôi như thế này:Ngăn chặn Scala thoát dấu ngoặc kép trong XML không cần thiết

<script type="text/javascript"> 
    foo("{bar}"); 
</script> 

và Javascript chứa một nhân vật dấu nháy kép (như trong ví dụ), nó sẽ xuất hiện như &quot; khi XML được chuyển đổi thành chuỗi và Firefox sẽ từ chối Javascript này khi có lỗi cú pháp.

Làm cách nào để tránh lỗi Javascript này mà không xóa &quot; s thực sự cần thiết?

Tôi đang sử dụng khung Chơi 1.2.4 với mô-đun Scala 0.9.1, yêu cầu Scala 2.8.1.

+0

Tôi không biết Scala nhưng sẽ đưa nội dung tập lệnh vào một khối CDATA trợ giúp? – Pointy

+0

@Pointy Không, thật không may là nó không có sự khác biệt. –

+1

Xem [vé này] (https://issues.scala-lang.org/browse/SI-3368). –

Trả lời

15

công cụ này có phù hợp với bạn không?

scala> val bar=scala.xml.Unparsed(""""hello"""") 
bar: scala.xml.Unparsed = "hello" 

scala> val x = <script type="text/javascript">foo({bar});</script> 
x: scala.xml.Elem = <script type="text/javascript">foo("hello");</script> 
+0

Điều này đã cứu tôi khỏi việc xây dựng chuỗi khó chịu. Cảm ơn! –

0

Nếu bạn đang gọi từ mẫu Play, bạn có thể thực hiện $ {myscript.raw()} thay vì chỉ $ {myscript}. Thẻ # {verbatim /} cũng sẽ hoạt động.

+0

Tôi sợ mô-đun Scala sử dụng ngôn ngữ lập trình dựa trên ngôn ngữ Scala khác - mà tôi đang sử dụng - vì vậy tôi không thể sử dụng câu trả lời này. –

+0

Ah, tệ lắm! Rất tiếc là nó không bao gồm một số chức năng thô cho JS. –

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