Как я могу манипулировать DOM во всплывающем окне междоменного домена с помощью window.open - PullRequest
0 голосов
/ 02 марта 2012

Я хочу, чтобы расширение помогло мне проверить статус другого сайта. Поэтому мне нужно расширение, чтобы открыть другой веб-сайт и проверить дом на веб-странице. Веб-сайт может быть динамической веб-страницей, поэтому мне нужно загрузить страницу в браузере, чтобы я мог получить реальный домен (а не только источник). Обычно для такого же домена Это может быть так:

var w = window.open('http://www.yahoo.com');
console.log(w);
$(w).bind('load', function() {
  //In chrome extension, i can not get "this.document"
  //And in iframe i can not get "document", either
  console.log(this.document);
});

Я пытаюсь использовать разрешение расширения Chrome для Ajax-кросса домена. Так что я могу манипулировать окном из разных домиан. Но это не удалось. Фрагмент не работает под расширением Chrome. Зачем? Почему расширение chrome имеет разрешение на междоменный ajax, но не может манипулировать окном из другого домена? И я также попробовал iframe. Это тоже не работает.

Я хочу спросить, есть ли какой-нибудь способ манипулировать междоменной документацией с помощью расширения chrome или chrome?

Ответы [ 2 ]

1 голос
/ 03 марта 2012

Одним из преимуществ расширения chrome является: оно предоставляет больше прав веб-приложению для обхода некоторых ограничений безопасности, включая XHR.

Пожалуйста, проверьте документ на межсайтовом xhr:

http://code.google.com/chrome/extensions/xhr.html

некоторые меры предосторожности:

  1. Вам необходимо настроить свойства manifest.json, permissions для включения xhr для дополнительных URL-адресов: Дополнительные возможные разрешения Если вам нужен скрипт содержимого расширения, запускаемый в iframe, обратите внимание на дополнительные свойства, установленные в content_scripts doc

    {
       "name": "My extension",
       ...
       "permissions": [   
               "tabs",
               "http://*/*",
               "https://*/*" ],
       "content_scripts": [{ //note: for iframe, array
           "matches":[
               "http://*/*",
               "https://*/*" //match all url
           ],
           "run_at": "document_idle",
           "js": ["jquery.min.js", "contentscript.js"] //script you need to run in iframe
        }]
    

    }

  2. Вам нужно обработать xhr в background.html, или вы передаете URL в новое окно, которое откроет расширение (chrome.windows.create).Вы можете получить представление о расширении, над которым я работаю (для манифеста и открытого окна): https://github.com/vincicat/ImageInfoPlus

Надеюсь, это поможет.

1 голос
/ 02 марта 2012

Вы можете запустить chrome с аргументом --disable-web-security, чтобы отключить междоменную политику. Если вы сделаете это, вам не понадобится расширение для управления другим окном.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...