2011-08-28 34 views
5

Tôi đã cố thực hiện một số sửa đổi đối với người dùng để cho phép nó hoạt động trong Chrome, nhưng khi tôi kéo nó vào cửa sổ Chrome để cài đặt, một hộp thoại bật lên và nói 'Không hợp lệ Tiêu đề tập lệnh '.Phương pháp gỡ lỗi bản ghi người dùng trong Chrome

Tôi đã cố gắng sử dụng Công cụ dành cho nhà phát triển và Bảng điều khiển Javascript tích hợp để gỡ lỗi bất kỳ lỗi nào xảy ra, nhưng không có gì xuất hiện để liệt kê bất kỳ thông tin nào.

Console.app không liệt kê bất kỳ điều gì có ý nghĩa, ngoại trừ thông báo lỗi tương tự mà tôi đã biết.

[0x0-0x2d02d].com.google.Chrome: [346:1547:16686819618022:ERROR:extension_error_reporter.cc(55)] Extension error: Invalid script header.

Làm cách nào để gỡ lỗi hợp lý thông báo lỗi này và tìm hiểu về tiêu đề không chính xác?

Tôi đang sử dụng Chrome 15.0.861.0 trên kênh nhà phát triển, trong Hệ điều hành 10.7 Lion.

+1

Tôi không nghĩ * * có bất kỳ công cụ cho việc này. Nếu bạn đăng mã thực tế ở đây, ai đó có thể phát hiện lỗi. Nếu không, bạn sẽ làm theo cách cũ: lấy một kịch bản tốt và kịch bản xấu và so sánh và phân chia một nửa sự khác biệt cho đến khi vấn đề được xác định. –

+0

đăng mã tại http://gist.github.com/ vui lòng – erikvold

Trả lời

5

Cuối cùng tôi đã vấp phải câu trả lời cho câu hỏi này, thật thú vị qua một số Chromium Bug Report.

Khi nó quay ra, câu trả lời cho câu hỏi của tôi là trong trang tóm tắt (tóm tắt ngắn gọn) Userscript Documentation for Chrome.

With Greasemonkey-style @include rules, it is not possible for Chrome to know for certain the domains a script will run on (because google.* can also run on google.evil.com). Because of this, Chrome just tells users that these scripts will run on all domains, which is sometimes scarier than necessary. With @match, Chrome will tell users the correct set of domains a user script will run on.

Khi nó quay ra, tôi đã sử dụng @match http://*musicbrainz.org trong một nỗ lực để phù hợp với www.musicbrainz.org cũng như musicbrainz.org, nhưng theo các văn bản trích dẫn, điều đó không giúp bạn tiết kiệm vô tình phù hợp với evilmusicbrainz.org. Vì vậy, giải pháp của tôi là sử dụng hai dòng:

@match http://*.musicbrainz.org và;
@match http://musicbrainz.org.

+0

Điều này sẽ giải thích tập lệnh chạy trên các trang phụ, nó không giải thích được thông báo lỗi. –

+0

Chrome sử dụng rất mạnh và tái sử dụng các yêu cầu "cùng nguồn gốc" vì mục đích bảo mật. Tôi có thể sử dụng rất tốt 'http: // */*' (và có, tôi sẽ phải chỉ định '// */*'), nhưng nếu tôi chỉ định một tên miền cấp thứ hai, nó phải được làm sạch. Bạn không thể glob trong một tên miền cấp thứ hai. Điều này có nghĩa là TLD cũng phải sạch sẽ. Về cơ bản, bạn có thể viết blog một tên miền phụ, nhưng nếu bạn làm như vậy nó phải được phân cách bằng dấu chấm trước khi chỉ định cấp thứ hai và TLD. – VxJasonxV

3

Loại:

debugger; 

Một nơi nào đó trong các mã, và Thanh tra Web sẽ bật lên ở vị trí đó. Tôi đã trả lời câu hỏi tương tự ở đây Chrome debugger inject javascript

1

tôi đã tìm ra trong khi tôi nhận được thông báo lỗi tương tự (INVALID SCRIPT HEADER) mà nó accoured nguyên nhân gây ra một lỗi đánh máy giữa // == UserScript == thông tin Header.

dòng wronge

// @run-at document.end

dòng chỉnh

// @run-at document-end
Các vấn đề liên quan