Có một cách khác để làm việc xung quanh trình chặn cửa sổ bật lên trước tiên bao gồm liên kết được phủ lên trang và sau đó cho phép người dùng nhấp vào đó để tạo cửa sổ bật lên. JavaScript bookmarklet sau đó có thể được lưu trữ trong một tệp riêng biệt. Đây là cách bookmarklet của Pinterest quản lý để làm điều đó. Trước tiên, họ chọn hình ảnh từ trang và phủ hình ảnh trực tiếp trên trang. Sau đó, khi người dùng nhấp để chọn một trong các ảnh, cửa sổ bật lên xuất hiện. Vì hành động này được khởi tạo bởi người dùng, cửa sổ bật lên hoạt động.
Dưới đây là một số mã bạn có thể sử dụng để kiểm tra:
Đặt tệp này vào tệp có tên bookmarklet.js
var popupProperties='width=600,height=400,toolbar=0,location=0,resizable=1';
var newA = document.createElement("a");
var url = 'http://www.stackoverflow.com';
newA.setAttribute("href","javascript:window.open(url,'Hi',popupProperties);");
newA.setAttribute("style","position:fixed;z-index:9999999;top:0;left:0;width:100px;height:100px;color:#000;background:#fff;display:block;");
var newT = document.createTextNode("Open this");
newA.appendChild(newT);
document.body.appendChild(newA);
Và sau đó liên kết bookmarklet bạn có thể là như thế này:
javascript:var jsCode = document.createElement('script');jsCode.setAttribute('src', 'http://localhost/bookmarklet.js?r='+Math.random()*99999999);document.body.appendChild(jsCode);
Ngoài ra, bạn cần phải bao gồm các cửa sổ bật lên trong liên kết bookmarklet thực tế. Điều này sẽ có nghĩa là cách duy nhất để thực hiện bất kỳ thay đổi nào là để người dùng cài đặt lại bookmarklet.
EDIT: Ngoài phương pháp trên, sau này tôi thấy rằng thậm chí còn có một cách khác để giải quyết vấn đề này bằng cách sử dụng easyXDM. Nó có thể giúp bạn làm việc xung quanh Chính sách gốc tương tự http://easyxdm.net/wp/
Sử dụng điều này, bạn có thể sử dụng iframe cho bookmarklet của mình và thậm chí bạn có thể có liên kết "đóng" bên trong iframe của mình. trang.
Bạn thậm chí có thể ném một id trên neo đó và thực hiện một số shenanigans như document.getElementById ('myid'). Click() và chỉ bắn nó ra khỏi dơi (vùng xám ở đây ...) Native DOM .click là khó tìm hỗ trợ tài liệu cho, nhưng chrome và FF hiện đại hoạt động tốt trong các bài kiểm tra ngắn gọn của tôi. –