今天發生了一件奇怪的事情,它正在測試我正在開發的一個網站:我試圖用jquery訪問iframe中的元素,令我驚訝的是我能夠訪問它們並修改它們。令人驚訝的是,因爲iframe不在同一個域中,因此我不應該爲「同源策略」做到這一點(或者我錯了?)。使用jQuery查看iframe內容後使用瀏覽器
問題是,它只能在用瀏覽器「檢查」任何iframe的元素之後才能完成(本例中爲chrome)。如果稍後我「檢查」不在iframe內的任何網站元素,那麼我將失去該「超級大國」並獲得預期結果,即由於「同源策略」而不允許jquery訪問。
問題: 1.-這是否應該發生? 2.-如果它可能暗示安全風險,是否有辦法阻止它? 3.-如果這是假設發生,是安全的,我怎麼能jQuery的「模擬」瀏覽器的「檢查」,讓我能訪問內部框架元素和修改它們
你在控制檯上運行jQuery嗎? –
是的,所描述的測試是來自Chrome的控制檯 – Roberto
在控制檯中,您可以選擇希望運行JavaScript的幀級別。因此,您可以在頁面內的任何iframe中運行jQuery,而不考慮源。如果您確定您在* top *框架中運行JavaScript,並從那裏訪問不同的原始iframe,那麼這將意想不到(我必須自己嘗試複製它以收集更多信息)。 –