2009-03-11 26 views
6

Tôi có một bookmarklet để đặt lại bộ định tuyến của mình. Tôi chỉ cần truy cập và để trang tải xong, sau đó bộ định tuyến của tôi bắt đầu đặt lại.Bookmarklet: Gắn khung nội tuyến ẩn vào trang và tải url

javascript:(function(){w=window.open("http://192.168.0.1/goform/formReboot","","width=1,height=1");self.focus();window.onload=w.close();})(); 

Nhưng nó sẽ mở trong cửa sổ bật lên.

Ý tưởng mới của tôi là tự động thêm một khung nội tuyến ẩn vào trang tôi đang sử dụng một tập sách javascript, sau đó mở url trong iframe ẩn. Điều này thậm chí có thể?

Tôi đang mở để có đề xuất tốt hơn về cách thực hiện việc này.

Trả lời

25

Một cách dễ dàng hơn là tạo ra một yếu tố IMG mới:

(function(){ 
    (new Image()).src = "http://192.168.0.1/goform/formReboot"; 
})(); 

Là một bookmarklet:

javascript:void((function(){(new Image()).src = "http://192.168.0.1/goform/formReboot";})()); 

Hoặc, nếu điều đó không làm việc, đây là ' người tạo ra iframe 'bạn đã yêu cầu:

(function(){ 
    var i = document.createElement('iframe'); 
    i.style.display = 'none'; 
    i.onload = function() { i.parentNode.removeChild(i); }; 
    i.src = 'http://192.168.0.1/goform/formReboot'; 
    document.body.appendChild(i); 
})(); 
+1

Tại sao bạn đang sử dụng void() xung quanh mã, khi bạn đã sử dụng (function() {})? –

2

Có thể là làm xong? Chắc chắn rồi!

  1. Tạo một yếu tố iframe, với bất cứ thông số cần thiết
  2. Thêm nó như đứa trẻ cuối cùng để cơ thể yếu tố
  3. Xong!

Dưới đây là một ví dụ (tất cả mọi thứ sẽ đi trên cùng một dòng):

javascript:var%20ifra=document.createElement('iframe'); 
ifra.src="http://www.chron.com"; 
ifra.setAttribute("height","230"); 
ifra.setAttribute("width","360"); 
void(document.body.appendChild(ifra)); 
Các vấn đề liên quan