2012-10-08 36 views
8

Tôi có tệp script.js.php. Mã chứa mã số PHPJavaScript (số js tùy thuộc vào số php). Và nó được đưa vào một trang dưới dạng tệp js.Làm nổi bật mã js bên trong tệp php

<script type="text/javascript" src="script.js.php"></script> 

Ví dụ về script.js.php

<?php 
    require_once 'functions.php' 
?> 
var vars = { 
    var1: 'value1', 
    var2: 'value2', 
    var2: '<?php echo phpFunction(); ?>' 
} 

Không ai biết, là nó có thể làm cho PhpStorm higlight mã JavaScript bên trong một file PHP mà không sử dụng script -tag?

Có thể có một số loại thẻ giả không ảnh hưởng đến html/js cuối cùng nhưng làm cho mã hightlight PhpStorm "đúng", ví dụ:

<!-- <section language="javascript">--> 
    js goes here 
<!-- </section> --> 
+0

** Cài đặt | Ngôn ngữ dữ liệu mẫu ** - tìm (các) tệp/thư mục của bạn và gán 'JavaScript' cho chúng (thay vì HTML mặc định). – LazyOne

+0

@LazyOne. Tuyệt vời! Cám ơn. Đặt câu trả lời này và tôi sẽ chấp nhận nó. –

Trả lời

9

Cài đặt | Ngôn ngữ dữ liệu mẫu - tìm (các) tệp hoặc (các) thư mục của bạn và chỉ định JavaScript cho chúng (thay vì HTML mặc định).

Nếu bạn giữ nội dung của mình được tổ chức tốt, bạn sẽ được hưởng lợi từ việc giữ tất cả các tệp *.js.php trong thư mục con riêng biệt - điều này cho phép gán đơn cho toàn bộ thư mục (và tất cả các tệp bên trong) thay vì nhiều bài tập cho từng tệp.

+0

Tác phẩm này hoạt động. cảm ơn bạn. –

+0

Lưu ý rằng đây là một giải pháp tốt hơn nhiều so với việc thêm, ví dụ, * .js.php vào các loại tệp vì sau đó nó không tiêm các thư viện vì một lý do nào đó. Nó sẽ nói 'cửa sổ' là không xác định và' jQuery' là không xác định. Bằng cách này, mặc dù, với Ngôn ngữ dữ liệu mẫu, bạn vẫn nhận được mã hoàn thành với các thư viện như jQuery hoặc thậm chí chỉ DOM giống như đối tượng 'window'. – Brandon

5
  • Đặt con trỏ về phía Javascript
  • Nhấn Alt + Enter
  • Chọn Inject Language
  • Chọn JavaScript

Ví dụ:

<?php 
echo "<script>/* CURSOR HERE*/ 
    alert('Hello World'); 
    </script>"; 
+0

Đó là khác nhau - anh ta có cách tiếp cận khác nhau - không có 'echo' được sử dụng, như bạn có thể thấy, vì vậy không có chỗ để tiêm ngôn ngữ thủ công – LazyOne

+0

thx, nhưng bị cấm sử dụng thẻ'