2012-01-25 26 views
7

Tôi đã cố gắng có một tiện ích đăng nhập nhỏ mà tôi đã nhúng trong một trang tĩnh bên trong khung nội tuyến cho phép ai đó đăng nhập vào trang web của tôi. Vấn đề tôi nhận được là khi biểu mẫu đăng lên, nó xuất hiện bên trong khung nội tuyến thay vì là trang trình duyệt đầy đủ.Cách gửi biểu mẫu từ bên trong khung nội tuyến và có kết quả là bên ngoài

Tôi biết có thể thực hiện việc này vì https://www.salliemae.com/ sử dụng cùng một chiến lược trên trang chủ của họ. Họ nhúng một khung nội tuyến bên trong trang tĩnh của họ làm tất cả logic của họ cho họ. Tôi có javascript rất giống nhau trong đó tôi gọi form.submit() khi ai đó nhấp chuột. Sự khác biệt duy nhất là tôi sử dụng jQuery để nắm bắt sự kiện nhấp chuột và đặt onclick trực tiếp vào phần tử biểu mẫu.

Tôi đã xem mã của họ trong tệp static.js của họ và có vẻ như đang thực hiện form.submit đơn giản() như tôi làm, nhưng trang của họ tải đầy đủ trong trình duyệt so với chỉ trong khung nội tuyến. Tôi đã nhìn xung quanh SO và không nhìn thấy một bài tương tự, vì vậy nếu tôi chỉ bỏ lỡ nó, xin vui lòng cho tôi biết.

+0

Nếu yêu cầu đi qua các miền , cổng hoặc giao thức, trình duyệt bắn xuống. Google [** XSS **] (http://en.wikipedia.org/wiki/Cross-site_scripting) để biết thêm thông tin. – Blender

+0

trong trường hợp của tôi (và ví dụ về salliemae ở trên) chúng đều nằm trên cùng một tên miền. Vì vậy, cho câu hỏi, làm thế nào để tôi làm điều đó giả sử cả hai đều trên cùng một tên miền? Salliemae chỉ có tên miền cấp thấp hơn, chúng nằm trên các tên miền phụ khác nhau (www. Vs login.) – Scott

Trả lời

15

Xem target="_top" trong thẻ <form> của iframe. Điều đó sẽ cho trình duyệt tải phản hồi trong khung chính.

+0

ahh, đã đập đầu vào việc này để tìm ra đồng bằng là gì. cảm ơn! – Scott

1

Nếu bạn không ajax nội dung, bạn chỉ cần thêm target = "_ top" để hình thành, nếu không bạn sẽ phải sử dụng window.open (serialisedurl, "_ top")

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