2008-10-04 28 views
8

Tôi không tìm cách triển khai đầy đủ, tôi quan tâm nhiều hơn đến cách họ thực hiện. Tôi biết họ sử dụng GWT, nhưng tôi muốn một câu trả lời cấp thấp hơn. Naively, tôi sẽ bắt đầu bằng cách suy nghĩ khi bạn nhấp vào liên kết popout họ chỉ cần mở một cửa sổ mới và sao chép nội dung vào đó. Có rất nhiều lý do tại sao điều đó sẽ không hoạt động tốt, vì vậy tôi tự hỏi nếu có ai biết hoặc có ý tưởng về cách họ làm điều này hoặc làm thế nào nó có thể được thực hiện.Làm cách nào để triển khai chức năng bật ra của cửa sổ trò chuyện trong Gmail?

Trả lời

12

Gần đây tôi cần giải quyết chính xác vấn đề này trong ứng dụng. Tôi đã kết thúc bằng cách sử dụng ít jQuery plugin tuyệt vời này để làm các trick: WindowMsg (xem link ở phía dưới) Trong khi tôi chắc chắn rằng có những cách khác để thực hiện các nhiệm vụ tương tự, plugin mà không công trình thusly:

  • đầu tiên bạn tạo cửa sổ con mới từ cửa sổ ban đầu của bạn bằng cách sử dụng window.open
  • bạn lưu tham chiếu đến đối tượng cửa sổ được trả về bởi window.open
  • bạn gọi phương thức thư viện trong cửa sổ con thêm biểu mẫu ẩn cho thư viện vào lưu trữ dữ liệu trong
  • bạn gọi phương thức thư viện trong cửa sổ chính sử dụng window.document.forms để điền vào các trường biểu mẫu trên chiến thắng con dow (thư viện tóm tắt tất cả các công cụ này để bạn thậm chí không biết có một biểu mẫu liên quan trừ khi bạn nhìn vào nguồn) window.document.forms hoạt động tương tự trên tất cả các trình duyệt chính, do đó trừu tượng này trong trình duyệt x tương thích
  • cuối cùng, cửa sổ con tham chiếu trở lại cửa sổ cha của nó bằng cách sử dụng window.opener và có thể truyền lại thông qua biểu mẫu ẩn song song trên thư mục
  • thư viện thực hiện một trình trợ giúp thuận tiện. chuỗi gọi lại dễ dàng để xử lý

Trong kinh nghiệm làm việc với thư viện, nó cũng sẽ rất tuyệt nếu chúng đã bao gồm JSON 2 lib từ JSON.org. Trong hộp, WindowMsg chỉ cho phép bạn gửi các thông điệp chuỗi giữa các cửa sổ, nhưng với một số sử dụng khá đơn giản của JSON 2 lib, tôi đã có thể hack nó để cho phép gửi các đối tượng JSON đầy đủ giữa các cửa sổ. Tôi đặt cược nhiều thư viện trưởng thành hơn (chẳng hạn như sử dụng google) bao gồm loại serialization đó và de-serialization được nướng.

Tôi đặt liên kết này ở đây vì lý do nào đó, trình định dạng ngăn xếp ngăn xếp biến thành liên kết cố định không có thẻ đóng và tôi không muốn toàn bộ bài đăng của mình trở thành một siêu liên kết khổng lồ!

WindowMsg: http://www.sfpeter.com/2008/03/13/communication-between-browser-windows-with-jquery-my-new-plugin/

+0

Bạn chưa từng nghe về WindowMsg trước đây, phải kiểm tra nó, chúc mừng! – ConroyP

+0

Thật không may là liên kết cho ** WindowMsg ** bị hỏng - bạn có một cái khác hay bạn có thể thêm một ví dụ nhỏ vào câu trả lời của mình không? (ví dụ: mẫu mã) – Matt

1

Tôi có thể nói một cách đơn giản nhất là nên có các dữ liệu được lưu trữ trên máy chủ (mà bạn có thể làm được), sau đó chỉ cần có cửa sổ mới lấy dữ liệu đó.

Tất nhiên không tồn tại những thứ như nội dung của hộp văn bản mà người dùng nhập, do đó tùy thuộc vào cửa sổ, điều đó có thể không thực tế .. nhưng tốt nhất là bắt đầu thử tùy chọn đơn giản nhất!

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