2012-10-02 30 views
0

我有這樣的問題 - 我想更改某個外部網站上元素的值。更改外部網站上的元素值

即:我的網絡攝像頭http界面受密碼保護,並且有一個帶有動作檢測複選框和「應用」按鈕(表單提交)的頁面。我想創建一個帶有某種延遲切換運動檢測的簡單程序(因此我可以啓動該程序並在運動檢測開始前有一段時間離開建築物)。所以我想更改複選框狀態並將此更改寫入系統。我試過這樣的事情,但那不起作用:

jQuery.get("http://admin:[email protected]:12345/motion-page.asp", 
     function(data){ 
     $('input[name="checkbox1"]').prop('checked', false); 
     // and there "simulate" clicking on Apply button - submit the form -- don't know how ... 
     } 
); 

有人可以幫我解決這個問題嗎?

回答

1

我會從顯示當您提交相機窗體頁原路返回。查看錶單本身是否將「打開相機」變量提交爲GET或POST。如果你已經知道了這一點,那麼你所要做的就是使用相同的URL作爲來自攝像頭的表單(假設它可以在像這樣的網絡上訪問HTTP)並提交相同的一組變量。

如果你不想打開瀏覽器來做到這一點,你可以自己寫一個自定義的應用程序爲你提交它,但無論哪種方式你必須打開一些提交,因爲腳本必須等待[X]提出請求之前的時間。最快的方式將通過瀏覽器。

我不確定你需要jquery(我從來沒有使用jquery)。我會在腳本方面做些什麼,因爲僅僅訪問這個腳本意味着你想最有可能激活計時器,就是在javascript中創建一個計時器對象,然後創建一個單獨的函數來訪問相機表單提交的URL與GET字符串參數(如果可以通過GET進行操作最簡單,因爲您不必構建表單),或者如果是POST,則該函數會構建表單並通過POST將表單提交到相同的URL。

Google如何在javascript中創建一個計時器,以及google如何自動提交表單。如果你能自己想出來,那麼爲你做代碼將浪費我的時間。如果沒有,回來,我們會看到我們能做些什麼:) 祝你好運。

+0

謝謝,我想我知道如何在某些網頁上發佈/獲取經典表單,但是在那裏提交是通過一些(private?)函數validate()完成的,我不知道其中究竟發生了什麼或者如何調用它遠程從我的腳本里面:( – kolage

+1

)對,所以通過一個像查爾斯這樣的調試代理來運行它,並且檢查請求,如果可以的話,否則我的想法是:對不起 – dudewad

+0

嘿,男人!很完美!一個魅力:)現在一切都解決了,我知道啓用/禁用移動偵測的URL。非常感謝!!! :) – kolage

0

爲什麼在點擊提交按鈕後,或者在選中框後,讓javascript實際運行計時器?看看js或jquery中的計時器函數,如果這更多的是你的東西。不知道你是否需要它寫入磁盤或其他什麼......因爲你沒有提供太多的信息,但是無論你想要記錄的數據是什麼,都可以在盒子被選中時被捕獲,並且可以隨着定時器一起提交用盡。 1.5.1 jQuery的形式很簡單: http://api.jquery.com/submit/ :)

+0

謝謝,但實際上我不知道如何以編程方式點擊按鈕,只能通過Web UI手動或者是您的意思?我也想這樣做,而不是手動啓動瀏覽器,輸入密碼,找到檢查按鈕,然後提交... – kolage

+0

然後你的問題很混亂。我瞭解到,您希望使用運行該應用程序的計算機,選中一個框,離開該建築物,並讓該腳本在一段時間後運行計時器以提交數據。無論哪種方式,你必須提供一些'提交'表單的輸入 - IE你必須從某個地方做。更清楚你想如何工作,因爲你現在已經完全困惑了我。 – dudewad

+0

我真的很感謝你的幫助,也許我很困惑你,因爲我的英語不好,對不起:)好吧,這是這樣的:IP攝像機連接到本地路由器,連接到本地路由器的計算機。相機的用戶界面已關閉(我沒有源文件或任何東西 - 只是網絡界面)。只是我想找出方法,如何啓用相機用戶界面中的checkbutton從這臺計算機與例如JavaScript/jQuery/...我只知道我可以用get/post方法通過它的用戶名和密碼登錄到相機的用戶界面,然後有一個asp頁面與這個複選框,我想啓用...我希望這更好:) – kolage