Khi cố gắng nhấp vào một phần tử trong tab mới mở, trình duyệt không nhấp vào phần nào trong tab trước đó khi nó phải nhấp vào tab mới
Tôi thiết lập điều này để nhấp vào một thành phần trong tab gốc, điều này khiến tab mới tự động mở, dự kiến tab mới sẽ chuyển hướng 2 lần. Tôi đã tạo một hoạt động nhấp chuột và chỉ định nhấp vào đúng phần tử trong tab mới, nhưng ngay cả khi có độ trễ, nó vẫn quyết định nhấp vào tab trước đó. Đây có thể là sự cố với bộ chọn của tôi vì nó từ chối xác nhận tab mới
Bất kỳ trợ giúp sẽ được đánh giá cao
Tôi đang xử lý xác thực trong dự án của mình bằng lớp Trình xử lý xác thực. logic là. mã thông báo được tạo trong khi đăng nhập sẽ được xác minh và nếu nó hợp lệ thì chỉ được cấp quyền truy cập vào các API bắt buộc
Kịch bản
Tôi đã đăng nhập vào ứng dụng bằng thông tin đăng nhập hợp lệ [Tôi có mã thông báo được tạo trong khi đăng nhập]. Nếu tôi mở một trang trong tab khác từ ứng dụng [sử dụng cửa sổ. open[address, "_blank"]], nó đang mở trang đó. Nhưng khi tôi mở một tab khác trên trình duyệt theo cách thủ công và nhập cùng một địa chỉ vào thanh địa chỉ, nó sẽ chuyển hướng tôi đến trang đăng nhập
Câu hỏi
Không mở trang bằng cửa sổ. mở và nhập thủ công địa chỉ vào thanh địa chỉ có giống nhau không? . mở nhưng không khả dụng khi tôi nhập thủ công url trong tab mới?
Những gì tôi đã thử
Khi chuyển hướng từ cửa sổ. mã mở, tab mới mở có mã thông báo trong Bộ lưu trữ phiên của trình duyệt [không hiểu tại sao nó có mã đó, không chuyển mã thông báo dưới dạng chuỗi truy vấn], nhưng khi nhập url theo cách thủ công, mã thông báo không có trong bộ lưu trữ phiên
Phương thức
window.open["//www.mozilla.org/", "mozillaTab"];
1 của giao diện window.open["//www.mozilla.org/", "mozillaTab"];
2 tải tài nguyên đã chỉ định vào ngữ cảnh duyệt web mới hoặc hiện có [nghĩa là tab, cửa sổ hoặc iframe] dưới một tên đã chỉ địnhcú pháp
open[]
open[url]
open[url, target]
open[url, target, windowFeatures]
Thông số
window.open["//www.mozilla.org/", "mozillaTab"];
3 Tùy chọnMột chuỗi cho biết URL hoặc đường dẫn của tài nguyên sẽ được tải. Nếu một chuỗi trống [
window.open["//www.mozilla.org/", "mozillaTab"];
4] được chỉ định hoặc tham số này bị bỏ qua, một trang trống sẽ được mở trong ngữ cảnh duyệt được nhắm mục tiêuwindow.open["//www.mozilla.org/", "mozillaTab"];
5 Tùy chọnMột chuỗi, không có khoảng trắng, chỉ định tên của ngữ cảnh duyệt mà tài nguyên đang được tải vào. Nếu tên không xác định ngữ cảnh hiện có, ngữ cảnh mới sẽ được tạo và đặt tên đã chỉ định. Cũng có thể sử dụng các từ khóa
window.open["//www.mozilla.org/", "mozillaTab"];
5 đặc biệt, window.open["//www.mozilla.org/", "mozillaTab"];
7, window.open["//www.mozilla.org/", "mozillaTab"];
8, window.open["//www.mozilla.org/", "mozillaTab"];
9 và window.open["//www.mozilla.org/", "mozillaTab"];
00Tên này có thể được sử dụng làm thuộc tính
window.open["//www.mozilla.org/", "mozillaTab"];
5 của các phần tử window.open["//www.mozilla.org/", "mozillaTab"];
02 hoặc window.open["//www.mozilla.org/", "mozillaTab"];
03window.open["//www.mozilla.org/", "mozillaTab"];
04 Tùy chọnMột chuỗi chứa danh sách các tính năng cửa sổ được phân tách bằng dấu phẩy ở dạng
window.open["//www.mozilla.org/", "mozillaTab"];
05 — hoặc đối với các tính năng boolean, chỉ cần window.open["//www.mozilla.org/", "mozillaTab"];
06. Các tính năng này bao gồm các tùy chọn như kích thước và vị trí mặc định của cửa sổ, có mở cửa sổ bật lên tối thiểu hay không, v.v. Các tùy chọn sau được hỗ trợwindow.open["//www.mozilla.org/", "mozillaTab"];
07Nếu tính năng này được bật, nó sẽ yêu cầu sử dụng một cửa sổ bật lên tối thiểu. Các tính năng giao diện người dùng có trong cửa sổ bật lên sẽ được trình duyệt tự động quyết định, thường chỉ bao gồm một thanh địa chỉ
Nếu
window.open["//www.mozilla.org/", "mozillaTab"];
07 không được bật và không có tính năng cửa sổ nào được khai báo, ngữ cảnh duyệt web mới sẽ là một tabGhi chú. Chỉ định bất kỳ tính năng nào trong tham số
window.open["//www.mozilla.org/", "mozillaTab"];
04, ngoài open[]
open[url]
open[url, target]
open[url, target, windowFeatures]
00 hoặc open[]
open[url]
open[url, target]
open[url, target, windowFeatures]
01, cũng có tác dụng yêu cầu cửa sổ bật lênĐể bật tính năng này, hãy chỉ định
window.open["//www.mozilla.org/", "mozillaTab"];
07 hoàn toàn không có giá trị hoặc nếu không, hãy đặt nó thành open[]
open[url]
open[url, target]
open[url, target, windowFeatures]
03, open[]
open[url]
open[url, target]
open[url, target, windowFeatures]
04 hoặc open[]
open[url]
open[url, target]
open[url, target, windowFeatures]
05Ví dụ.
open[]
open[url]
open[url, target]
open[url, target, windowFeatures]
06, open[]
open[url]
open[url, target]
open[url, target, windowFeatures]
07, open[]
open[url]
open[url, target]
open[url, target, windowFeatures]
08 và window.open["//www.mozilla.org/", "mozillaTab"];
07 đều có kết quả giống hệt nhauwindow.open["//www.mozilla.org/", "mozillaTab"];
00 hoặc window.open["//www.mozilla.org/", "mozillaTab"];
01Chỉ định chiều rộng của vùng nội dung, bao gồm thanh cuộn. Giá trị yêu cầu tối thiểu là 100
window.open["//www.mozilla.org/", "mozillaTab"];
02 hoặc window.open["//www.mozilla.org/", "mozillaTab"];
03Chỉ định chiều cao của khu vực nội dung, bao gồm thanh cuộn. Giá trị yêu cầu tối thiểu là 100
window.open["//www.mozilla.org/", "mozillaTab"];
04 hoặc window.open["//www.mozilla.org/", "mozillaTab"];
05Chỉ định khoảng cách tính bằng pixel từ phía bên trái của khu vực làm việc như được xác định bởi hệ điều hành của người dùng nơi cửa sổ mới sẽ được tạo
window.open["//www.mozilla.org/", "mozillaTab"];
06 hoặc window.open["//www.mozilla.org/", "mozillaTab"];
07Chỉ định khoảng cách tính bằng pixel từ phía trên cùng của khu vực làm việc như được xác định bởi hệ điều hành của người dùng nơi cửa sổ mới sẽ được tạo
open[]
open[url]
open[url, target]
open[url, target, windowFeatures]
00Nếu tính năng này được đặt, cửa sổ mới sẽ không có quyền truy cập vào cửa sổ ban đầu thông qua
window.open["//www.mozilla.org/", "mozillaTab"];
09 và trả về window.open["//www.mozilla.org/", "mozillaTab"];
00Khi sử dụng
open[]
open[url]
open[url, target]
open[url, target, windowFeatures]
00, các tên mục tiêu không trống, ngoài window.open["//www.mozilla.org/", "mozillaTab"];
00, window.open["//www.mozilla.org/", "mozillaTab"];
7 và window.open["//www.mozilla.org/", "mozillaTab"];
9, được xử lý giống như window.open["//www.mozilla.org/", "mozillaTab"];
8 về mặt quyết định có mở ngữ cảnh duyệt web mới hay khôngopen[]
open[url]
open[url, target]
open[url, target, windowFeatures]
01Nếu tính năng này được đặt, trình duyệt sẽ bỏ qua tiêu đề
window.open["//www.mozilla.org/", "mozillaTab"];
07, cũng như đặt open[]
open[url]
open[url, target]
open[url, target, windowFeatures]
00 thành true. Xem window.open["//www.mozilla.org/", "mozillaTab"];
09 để biết thêm thông tinGhi chú. Các giá trị vị trí được yêu cầu [
window.open["//www.mozilla.org/", "mozillaTab"];
06, window.open["//www.mozilla.org/", "mozillaTab"];
04] và thứ nguyên được yêu cầu [window.open["//www.mozilla.org/", "mozillaTab"];
00, window.open["//www.mozilla.org/", "mozillaTab"];
02] trong window.open["//www.mozilla.org/", "mozillaTab"];
04 sẽ được sửa nếu bất kỳ giá trị nào được yêu cầu như vậy không cho phép hiển thị toàn bộ cửa sổ bật lên của trình duyệt trong khu vực làm việc cho các ứng dụng của hệ điều hành của người dùng. Nói cách khác, ban đầu không có phần nào của cửa sổ bật lên mới có thể được định vị ngoài màn hìnhGiá trị trả về
Một đối tượng
window.open["//www.mozilla.org/", "mozillaTab"];
55. Tham chiếu được trả về có thể được sử dụng để truy cập các thuộc tính và phương thức của cửa sổ mới miễn là nó tuân thủ các yêu cầu bảo mật của chính sách cùng nguồn gốcSự miêu tả
Phương thức
window.open["//www.mozilla.org/", "mozillaTab"];
1 của giao diện window.open["//www.mozilla.org/", "mozillaTab"];
2 lấy một URL làm tham số và tải tài nguyên mà nó xác định vào một tab hoặc cửa sổ mới hoặc hiện có. Tham số window.open["//www.mozilla.org/", "mozillaTab"];
5 xác định cửa sổ hoặc tab nào sẽ tải tài nguyên vào và tham số window.open["//www.mozilla.org/", "mozillaTab"];
04 có thể được sử dụng để kiểm soát mở một cửa sổ bật lên mới với các tính năng giao diện người dùng tối thiểu và kiểm soát kích thước cũng như vị trí của nóLưu ý rằng các URL từ xa sẽ không tải ngay lập tức. Khi
window.open["//www.mozilla.org/", "mozillaTab"];
00 trả về, cửa sổ luôn chứa window.open["//www.mozilla.org/", "mozillaTab"];
01. Quá trình tìm nạp URL thực tế được hoãn lại và bắt đầu sau khi khối tập lệnh hiện tại kết thúc thực thi. Việc tạo cửa sổ và tải tài nguyên được tham chiếu được thực hiện không đồng bộví dụ
Mở một tab mới
window.open["//www.mozilla.org/", "mozillaTab"];
Mở cửa sổ bật lên
Ngoài ra, ví dụ sau minh họa cách mở cửa sổ bật lên, sử dụng tính năng
window.open["//www.mozilla.org/", "mozillaTab"];
07Cảnh báo. Các trình duyệt hiện đại có trình chặn cửa sổ bật lên tích hợp, ngăn việc mở các cửa sổ bật lên đó. Người dùng phải thay đổi cài đặt trình duyệt của họ để bật cửa sổ bật lên hoặc bật chúng trên cơ sở từng trang từ giao diện người dùng của trình duyệt [một thông báo có thể xuất hiện khi trang web cố gắng mở cửa sổ bật lên lần đầu tiên, cung cấp tùy chọn bật hoặc
window.open["//www.mozilla.org/", "mozillaTab"];
0Có thể kiểm soát kích thước và vị trí của cửa sổ bật lên mới
open[]
open[url]
open[url, target]
open[url, target, windowFeatures]
0Tăng cường tiến bộ
Trong một số trường hợp, JavaScript bị tắt hoặc không khả dụng và
window.open["//www.mozilla.org/", "mozillaTab"];
00 sẽ không hoạt động. Thay vì chỉ dựa vào sự hiện diện của tính năng này, chúng tôi có thể cung cấp giải pháp thay thế để trang web hoặc ứng dụng vẫn hoạt độngCung cấp các cách thay thế khi JavaScript bị tắt
Nếu hỗ trợ JavaScript bị tắt hoặc không tồn tại, thì tác nhân người dùng sẽ tạo một cửa sổ phụ tương ứng hoặc sẽ hiển thị tài nguyên được tham chiếu theo cách xử lý thuộc tính
window.open["//www.mozilla.org/", "mozillaTab"];
5 của nó. Mục tiêu và ý tưởng là cung cấp [chứ không áp đặt] cho người dùng cách mở tài nguyên được tham chiếuHTML
window.open["//www.mozilla.org/", "mozillaTab"];
0JavaScript
window.open["//www.mozilla.org/", "mozillaTab"];
0Đoạn mã trên giải quyết một số vấn đề về khả năng sử dụng liên quan đến liên kết mở cửa sổ bật lên. Mục đích của
window.open["//www.mozilla.org/", "mozillaTab"];
05 trong mã là hủy bỏ hành động mặc định của liên kết. nếu trình xử lý sự kiện cho window.open["//www.mozilla.org/", "mozillaTab"];
06 được thực thi, thì không cần thực hiện hành động mặc định của liên kết. Nhưng nếu hỗ trợ JavaScript bị tắt hoặc không tồn tại trên trình duyệt của người dùng, thì trình xử lý sự kiện cho window.open["//www.mozilla.org/", "mozillaTab"];
06 sẽ bị bỏ qua và trình duyệt sẽ tải tài nguyên được tham chiếu trong khung hoặc cửa sổ đích có tên window.open["//www.mozilla.org/", "mozillaTab"];
08. Nếu không có khung cũng như cửa sổ nào có tên là window.open["//www.mozilla.org/", "mozillaTab"];
08 thì trình duyệt sẽ tạo một cửa sổ mới và đặt tên là window.open["//www.mozilla.org/", "mozillaTab"];
08Ghi chú. Để biết thêm chi tiết về thuộc tính
window.open["//www.mozilla.org/", "mozillaTab"];
5, xem window.open["//www.mozilla.org/", "mozillaTab"];
02 hoặc window.open["//www.mozilla.org/", "mozillaTab"];
03Sử dụng lại các cửa sổ hiện có và tránh window.open["//www.mozilla.org/", "mozillaTab"];
94
window.open["//www.mozilla.org/", "mozillaTab"];
Sử dụng
window.open["//www.mozilla.org/", "mozillaTab"];
95 làm giá trị thuộc tính đích sẽ tạo ra một số cửa sổ mới và chưa được đặt tên trên màn hình của người dùng không thể tái chế hoặc sử dụng lại. Cố gắng cung cấp một tên có ý nghĩa cho thuộc tính window.open["//www.mozilla.org/", "mozillaTab"];
5 của bạn và sử dụng lại thuộc tính window.open["//www.mozilla.org/", "mozillaTab"];
5 đó trên trang của bạn để một cú nhấp chuột vào một liên kết khác có thể tải tài nguyên được tham chiếu trong một cửa sổ đã được tạo và hiển thị [do đó tăng tốc quá trình cho người dùng] và do đó biện minh cho . Việc sử dụng một giá trị thuộc tính window.open["//www.mozilla.org/", "mozillaTab"];
5 duy nhất và sử dụng lại nó trong các liên kết sẽ thân thiện với tài nguyên người dùng hơn nhiều vì nó chỉ tạo một cửa sổ phụ duy nhất, cửa sổ này được tái sử dụngĐây là một ví dụ nơi một cửa sổ phụ có thể được mở và sử dụng lại cho các liên kết khác
HTML
window.open["//www.mozilla.org/", "mozillaTab"];
5JavaScript
window.open["//www.mozilla.org/", "mozillaTab"];
0Chính sách cùng nguồn gốc
Nếu bối cảnh duyệt mới được mở không có cùng nguồn gốc, tập lệnh mở sẽ không thể tương tác [đọc hoặc viết] với nội dung của bối cảnh duyệt
window.open["//www.mozilla.org/", "mozillaTab"];
9window.open["//www.mozilla.org/", "mozillaTab"];
7Để biết thêm thông tin, hãy tham khảo bài viết Chính sách cùng nguồn gốc
khả năng tiếp cận
Tránh dùng đến cửa sổ. mở[]
Tốt hơn là tránh dùng đến
window.open["//www.mozilla.org/", "mozillaTab"];
00, vì một số lý do- Các trình duyệt hiện đại cung cấp tính năng chặn cửa sổ bật lên
- Các trình duyệt hiện đại cung cấp tính năng duyệt tab và người dùng trình duyệt hỗ trợ tab thích mở tab mới hơn mở cửa sổ mới trong hầu hết các tình huống
- Người dùng có thể sử dụng các tính năng hoặc tiện ích mở rộng tích hợp sẵn của trình duyệt để chọn mở một liên kết trong một cửa sổ mới, trong cùng một cửa sổ, trong một tab mới, cùng một tab hay trong nền. Buộc phần mở đầu diễn ra theo một cách cụ thể, sử dụng
00, sẽ khiến họ bối rối và bỏ qua thói quen của họwindow.open["//www.mozilla.org/", "mozillaTab"];
- Cửa sổ bật lên không có thanh công cụ menu, trong khi các tab mới sử dụng giao diện người dùng của cửa sổ trình duyệt;
Không bao giờ sử dụng cửa sổ. open[] nội tuyến trong HTML
Tránh
window.open["//www.mozilla.org/", "mozillaTab"];
71 hoặc window.open["//www.mozilla.org/", "mozillaTab"];
72Các giá trị
window.open["//www.mozilla.org/", "mozillaTab"];
73 không có thật này gây ra hành vi không mong muốn khi sao chép/kéo liên kết, mở liên kết trong tab/cửa sổ mới, đánh dấu trang hoặc khi JavaScript đang tải, lỗi hoặc bị vô hiệu hóa. Chúng cũng truyền đạt ngữ nghĩa không chính xác cho các công nghệ hỗ trợ, như trình đọc màn hìnhNếu cần, hãy sử dụng phần tử
window.open["//www.mozilla.org/", "mozillaTab"];
74 để thay thế. Nói chung, bạn chỉ nên sử dụng liên kết để điều hướng đến một URL thựcLuôn xác định các liên kết dẫn đến cửa sổ phụ
Xác định các liên kết sẽ mở ra các cửa sổ mới theo cách giúp điều hướng cho người dùng
window.open["//www.mozilla.org/", "mozillaTab"];
0Mục đích là để cảnh báo người dùng về những thay đổi ngữ cảnh để giảm thiểu sự nhầm lẫn từ phía người dùng. việc thay đổi cửa sổ hiện tại hoặc bật lên các cửa sổ mới có thể khiến người dùng mất phương hướng [trong trường hợp cửa sổ bật lên, không có thanh công cụ nào cung cấp nút "Trước" để quay lại cửa sổ trước đó]
Khi những thay đổi cực đoan trong bối cảnh được xác định rõ ràng trước khi chúng xảy ra, thì người dùng có thể xác định xem họ có muốn tiếp tục hay không hoặc để họ có thể chuẩn bị cho thay đổi. không những họ sẽ không bị nhầm lẫn hoặc cảm thấy mất phương hướng, mà những người dùng có kinh nghiệm hơn có thể quyết định tốt hơn cách mở các liên kết đó [trong một cửa sổ mới hay không, trong cùng một cửa sổ, trong một tab mới hay không, trong "nền" hay không]