2008-08-25 4 views
8

Đồng nghiệp của tôi và tôi đã gặp phải tình huống khó chịu khi chúng tôi phải sử dụng điều khiển X hoạt động để thao tác máy ảnh web trên một trang.Active X Control JavaScript

Có thể gán trình xử lý sự kiện javascript cho nút trong điều khiển x hoạt động sao cho nó sẽ kích hoạt hành động trên trang khi được nhấp hoặc chúng ta phải tạo nút trên trang html để điều khiển Active X Control và sau đó có thể kích hoạt bất kỳ hành động cần thiết nào trên trang?

Trả lời

7

Hãy chỉ sử dụng điều khiển ActiveX hiện có. Giống như Flash hoặc Silverlight. Flash có hỗ trợ webcam tích hợp và có thể điều khiển thông qua JavaScript. Silverlight không có hỗ trợ camera tích hợp, nhưng tích hợp JavaScript thật tuyệt vời.

Nếu bạn phải viết của riêng mình thì hãy băn khoăn không, nó là tầm thường để làm cho nó tương tác với JavaScript. Bạn chỉ cần để lộ giao diện IDispatch.

Đối với các sự kiện, bạn cần tìm hiểu về Connection Points.

4

Có! Bạn có thể ném các sự kiện vào vùng C++/ActiveX làm cho mã JavaScript chạy một hàm xử lý sự kiện. Tôi thậm chí còn có thể tạo toàn bộ điều khiển ActiveX vô hình (cùng màu với nền trang) mà không có nút hoặc phản hồi trực quan nào đã làm tất cả công việc GUI của nó thông qua JavaScript và CSS.

chỉnh sửa: Lời khuyên của Frank là đúng. Here's the link on scripting events.

Chiến lược của tôi là gọi hàm C++ có tên MyUpdate (cài đặt IConnectionPoint) khi tôi muốn ép buộc cập nhật trong trình duyệt.

(Ngoài ra, tôi chắc chắn sẽ bơm tin nhắn Windows trong phương pháp Fire_MyUpdate vì đôi khi mã JavaScript sẽ gọi lại vào C++ bằng cách gọi phương thức trên điều khiển ActiveX; , ví dụ như một nút Cancel)

về phía trình duyệt, mã JavaScript có biến toàn cầu tham khảo đối tượng, tiếp theo là "::", theo sau là tên phương pháp:.

function Uploader::MyUpdate() 
{ 
    // ... code to fetch the current state of various 
    // properties from the Uploader object and do something with it 
    // for example check Uploader.IsActive and show or hide an HTML div 
}