2013-04-25 30 views
7

Tôi gặp sự cố với việc triển khai Javascript của mình. Tập lệnh sẽ chạy trong Firefox nhưng trong Chrome có nội dung:Tôi gặp lỗi "Canvas đã bị nhiễm độc" trong Chrome nhưng không có trong FF

Unable to get image data from canvas because the canvas has been tainted by cross-origin data. index.html:1 
Uncaught Error: SecurityError: DOM Exception 18 

Có ai có ý tưởng về nguyên nhân của hành vi không nhất quán đó không?

+1

Canvas được coi là "bị nhiễm độc" nếu hình ảnh đến từ một tên miền khác với trang chính. Bạn đã không đăng các URL hình ảnh để không thể nói chính xác điều gì đang xảy ra với bạn. – Pointy

+2

Cảm ơn Pointy. URL chỉ là tên tệp cục bộ, vì tệp hình ảnh nằm trong cùng thư mục với tệp chỉ mục. Tuy nhiên, điều kỳ lạ là nó hoạt động không có vấn đề gì trong Firefox nhưng Chrome đã vượt ra khỏi màu xanh bắt đầu dai dẳng. – AndroidHustle

Trả lời

7

Chrome không xem xét các tệp cục bộ khác nhau được lấy từ cùng một tên miền. Tức là, mỗi tệp cục bộ mà bạn tham chiếu qua một URL file:// được coi như là nó đến từ một tên miền duy nhất tách biệt với một URL khác file://. Rằng họ đang ở trong cùng một thư mục không có sự khác biệt.

Bạn có thể khởi động Chrome bằng một tùy chọn ("--allow-file-access-from-files" Tôi nghĩ) cho phép xử lý tệp cục bộ như tất cả từ một miền chung.

+0

cảm ơn thông tin bạn đã nhập! Tôi tìm thấy [bài đăng này] (http://stackoverflow.com/questions/9972049/cross-origin-data-in-html5-canvas) dựa trên những gì bạn đã viết. Tôi phải thừa nhận rằng tôi không hoàn toàn chắc chắn như thế nào URL nên được định dạng ... (Tôi không phải là rất tốt lúc này). URL tôi chạy cùng lúc: ** tệp: /// C: /Users/Max/Dropbox/Web%20projekt/Shalette/index.html**. Điều này nên được điều chỉnh như thế nào? Đang cố gắng đặt: ** http: // localhost // C: /Users/Max/Dropbox/Web%20projekt/Shalette/index.html** chỉ bắt đầu một số quy trình trong bảng điều khiển Chrome và không nhiều hơn nữa. Bất kỳ thông tin bạn có thể cho tôi được đánh giá cao! – AndroidHustle

+1

@AndroidHustle Hoặc bạn phải sử dụng cờ dòng lệnh '--allow-file-access-from-files' hoặc nội dung của bạn phải được phục vụ từ máy chủ Web qua HTTP bằng cách sử dụng 'http:' (hoặc 'https:') kế hoạch. – apsillers

+0

@apsillers Cảm ơn, tôi xin lỗi nhưng tôi phải hỏi, dòng lệnh này ở đâu? Tôi không thấy bất cứ điều gì về cách mở nó trong Chrome khi tôi tìm kiếm nó. Ngoài ra, tôi không thấy bất kỳ thứ gì trông giống như dòng lệnh trong Chrome khi tôi tìm trong Bảng điều khiển. – AndroidHustle

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