2012-03-15 44 views
6

Chúng tôi đang sử dụng Google Apps tại công ty của chúng tôi và mọi người đều đã cài đặt Chrome trên máy tính của họ. Vấn đề là chúng ta vẫn phải sử dụng IE cho những thứ nhất định. Tôi có một vài tệp html trên trang web mạng nội bộ của chúng tôi liên kết với Google Documents nhưng nó đang mở trong trình duyệt IE. Tôi cần nó để mở trình duyệt Chrome để người dùng không phải đăng nhập mỗi khi họ mở tệp. Tôi chỉ có quyền kiểm soát các cài đặt tệp html vì vậy có cách nào để sử dụng Javascript để buộc cửa sổ mở trong Chrome không?Mã Javascript để buộc trang html mở trong trình duyệt Chrome?

Cảm ơn!

Trả lời

-1

Bạn có hỏi bạn có thể mở cửa sổ Chrome từ Javascript trong cửa sổ IE không? Nếu có, thì không, điều này là không thể. Mã Javascript trong trình duyệt chạy trong một hộp cát rất nghiêm ngặt sẽ không cho phép bạn thực hiện bất kỳ cuộc gọi hệ thống nào. Việc mở cửa sổ Chrome từ IE sẽ yêu cầu bạn thực thi chrome.exe trên máy của khách hàng. Tôi chắc rằng bạn có thể thấy khả năng này, nếu được cấp, có thể bị lạm dụng để thực thi các exe độc ​​hại trên hệ thống của khách hàng.

+0

Họ có thể sử dụng ActiveX thay vào đó, như câu trả lời của tôi gợi ý. – AlanFoster

-1

Kiểm tra nếu trình duyệt hiện tại là chrome:

var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; 

nếu không, người sử dụng cảnh báo để hiển thị một thông điệp.

-1

Tôi khá chắc chắn rằng điều tốt nhất bạn có thể thực hiện bằng JavaScript là hiển thị thông báo cho người dùng và yêu cầu họ mở tệp trong Chrome. JavaScript không có quyền thực thi một ứng dụng bên ngoài như Chrome. Xem http://www.w3schools.com/js/js_browser.asp để biết thông tin về cách phát hiện trình duyệt bằng JavaScript.

+0

Họ có thể sử dụng ActiveX thay vào đó, như câu trả lời của tôi cho thấy. – AlanFoster

4

Tôi tin rằng nếu bạn đang sử dụng IE, bạn có thể sử dụng ActiveX để mở các chương trình cụ thể.

Ví dụ thử nhìn vào 'ActiveXObject mới'

Bạn dứt khoát phải cho phép điều này tuy nhiên như IE khẳng định nếu bạn muốn cho phép nó để được thực thi.

function loadProg(path){ 
    var active = new ActiveXObject("WScript.Shell"); 
    activeX = active.Run(path); 
} 

Nếu bạn biết đường dẫn tập tin trực tiếp sử dụng này như

loadProg(path); 

Cụ thể hơn như

window.onload = function(){ 
    loadProg("\"C:\\Program Files (x86)\\Guitar Pro 5\\GP5.exe\""); 
}; 

Tôi không biết đường dẫn đến Chrome vì vậy tôi sử dụng cái gì khác để thay thế.

+1

Các plugin ActiveX ngẫu nhiên thường bị chặn hoặc bị hạn chế nghiêm trọng bởi các cài đặt bảo mật. Nếu đây là tôi, tôi sẽ chỉ phát hiện ra rằng đây không phải Chrome và nhắc người dùng mở Chrome và không gây rối với ActiveX. Có, nếu bạn có thể chạy plugin ActiveX của mình, plugin có thể mở trực tiếp Chrome. – jfriend00

+0

@ jfriend00 IE hỗ trợ điều này, ngay cả IE9. Nó chỉ đơn giản là nhắc nhở người dùng trước khi thực hiện nó. Tôi không biết những hạn chế bảo mật nào được đặt lên người dùng của họ, tôi chắc chắn điều này sẽ được chú ý trong một thử nghiệm cơ bản về các trường hợp sử dụng của họ, vì vậy tôi đã đề xuất điều này như một câu trả lời vì nó thực hiện chính xác những gì anh ta yêu cầu. – AlanFoster

+0

IE có hệ thống bảo mật khu vực này thường được quản lý bởi CNTT để ngăn người dùng tự bắn mình bằng cách chấp nhận các plugin ActiveX có hại trong một số trường hợp. Nó có thể hoặc không thể được cấu hình để cho phép loại plug-in này hoạt động. Tôi chỉ đưa ra ý kiến ​​của tôi rằng tôi sẽ không đi theo cách này. Tôi đã không downvote hoặc nói nó không phải là một câu trả lời, chỉ cần thể hiện ý kiến ​​của tôi mà tôi được phép làm. – jfriend00

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