(HTML/javascript) Работа с iframe между домейни

Имам страница, която показва различен уебсайт (да речем www.cnn.com) във вградена рамка.

Всичко, което искам, е да накарам връзките вътре в iframe да се отварят в родителския прозорец, а не вътре в рамката.

Знам, че това обикновено е невъзможно от съображения за сигурност, което за мен има смисъл. Въпреки това страницата, върху която работя, няма да бъде публична, а само на личния ми компютър и ако трябва да изключа някои функции за сигурност, за да работи, няма проблем.

Има ли изобщо някакъв начин да направите това?

Цял ден ровя в мрежата за решение. Ако съм пропуснал публикация тук или другаде, моля, насочете ме към нея.

Четох, че във Firefox (който използвам) е възможно да се получат разширени разрешения в javascript, ако скриптът е „подписан“ (или конкретен запис в конфигурацията е променен). Не знам обаче как да използвам тези разширени разрешения за моята цел...някакви съвети?

Бих обмислил и различни подходи, напр. изобщо не използва iframes. Какъвто и да е методът, искам да мога да вградя няколко уебсайта, върху които нямам контрол, в една страница. Връзките, кликнати в някой от вградените уебсайтове, трябва да се отворят в родителския прозорец. Просто трябва да е удобен инструмент за мен. Трябва да кажа, че нямам никакви познания по javascript и просто се уча чрез правене. Ако можете уверено да кажете, че това, което искам, не е възможно с никакви методи от страна на клиента, това също би помогнало. Предполагам, че би било доста лесно да го направите, напр. с php, но не искам да настройвам уеб сървър, ако не е необходимо. Благодаря за всякакви съвети!


person Matt    schedule 02.07.2011    source източник


Отговори (2)


Това е малко по-различно решение от това, което поискахте, но може да е по-добър начин да атакувате проблема, тъй като може да ви даде възможността, която търсите, без да компрометира нормалната уеб сигурност.

Чудя се дали Greasemonkey (добавка за Firefox и други браузъри) може да бъде полезно решение за вас, тъй като ви позволява да стартирате локален javascript срещу други страници, за да ги променяте локално, донякъде независимо от нормалните ограничения за сигурност. И така, можете да преминете през всички връзки в страница на CNN и да ги промените, ако това е, което трябва да направите.

За да го използвате, трябва да инсталирате добавката greasemonkey във Firefox, да напишете скрипт, който променя CNN.com по начина, по който искате, да инсталирате този скрипт в Greasemonkey, след което да насочите скрипта само към уеб страницата CNN.com. Мисля, че трябва да работи на този сайт, независимо дали е във вградена рамка или не, но вашият скрипт вероятно може да открие дали е във вградена рамка, ако трябва.

person jfriend00    schedule 02.07.2011

Изглежда, че безпроблемният атрибут HTML5 ще бъде това, което търсите. Но все още не изглежда, че нещо го поддържа...

http://www.w3schools.com/html5/att_iframe_seamless.asp

person Anthony Sottile    schedule 02.07.2011