2011-07-13 33 views
5

Tôi biết đã có một số câu hỏi tương tự, nhưng tôi chưa thấy câu trả lời cho nhu cầu cụ thể của mình: Có cách nào để nhấp vào một nút trong một trang web được khởi chạy riêng không? Ví dụ, tôi khởi động một trang web thông qua:lập trình nhấp vào nút nhập trong trang web khác?

  • <a href="x" target="y"> hoặc
  • window.open()

Tôi có thể sau đó nhấp vào nút đầu vào trong trang web đó đưa ra lập trình?

+0

Mục đích của việc đó là gì? –

Trả lời

0

Bạn có thể nhấp vào bất kỳ yếu tố nào bạn có thể chọn.

Bạn chỉ có thể chọn các phần tử trong cửa sổ mà bạn có bảo mật bảo mật.

Bạn có quyền đối với cửa sổ của riêng mình và quyền đối với các cửa sổ trong cùng một miền & bảo mật.

Để truy cập vào phần tử bạn sẽ cần các đối tượng cửa sổ, mà được trả về từ window.open

var newWin = window.open(siteYouHaveAccessTo); 
newWin.document.getElementById('foo').click(); 

Nếu bạn đang cố gắng nhấn vào nút Search trên www.google.com, bạn SOL.

+0

có một số chi tiết cụ thể mà tôi thiếu trong phạm vi tên miền bạn có quyền truy cập. Tôi biết 'http' so với' https' tạo sự khác biệt, những gì tôi không thể nhớ là có vấn đề với các tên miền phụ và/hoặc thư mục hay không. – zzzzBov

2

Trừ khi trang nằm bên dưới quyền kiểm soát của chính bạn hoặc nằm trên cùng một miền thì không, không thể thực hiện được. Đây sẽ là kịch bản cross-site và tất cả các trình duyệt đều có các hộp cát bảo mật để giữ cho một cái gì đó như thế này xảy ra. Tại sao bạn cố gắng lập trình nhấn một nút trên trang mà bạn cũng đang mở theo chương trình?

2

Có. Khi bạn làm window.open nó sẽ trả về cho bạn một đối tượng cửa sổ. Var win = window.open(); win.fnSubmit(); giả định fnSubmit là chức năng trên trang khác sẽ thực hiện thao tác.clicking. và cả hai pqges trên cùng một tên miền.

0

Khảo sát cho biết ... có thể. Nếu bạn đã làm bài tập ở nhà của bạn, có thể bạn sẽ có thể nhận được thông tin liên lạc xảy ra trong cùng một tên miền phụ. Nó dần trở nên khó khăn hơn từ đó - Tôi chưa bao giờ có hỗ trợ tên miền phụ xuyên suốt trình duyệt phù hợp để thao tác JavaScript giữa hai cửa sổ (hoặc iframe).

Điều đó nói rằng, nếu chúng là cùng một miền, đó là vấn đề giảm dần vào đó. Nếu tôi có:

  • Window A mở Window B
  • Window B tuyên bố var winBVar
  • Window A là có thể truy cập winBVar sau đó, và chỉ sau đó, biến đó được khai báo (như trong, bạn vẫn cần phải chờ document.onload, vv)
1

Đây là một kỹ thuật được sử dụng bởi một số cuộc tấn công tiêm hacking. Về cơ bản, bạn có thể đưa javascript vào chuỗi truy vấn có thể đính kèm chính nó vào DOM, thay đổi hình ảnh hoặc nguồn tệp swf hoặc chỉ cần chạy khi trang được tải; example hereexample here.

Hoặc nếu bạn đã biết cấu trúc của trang khác, bạn có thể trực tiếp nhắm mục tiêu các phương pháp hoặc đối tượng.

Nhưng vì đây không phải là những điều tốt đẹp, tôi cho rằng bạn có lý do chính đáng tại sao bạn không thể chạm vào mã trên trang nhận nhưng muốn điều chỉnh hành vi của nó?

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