Не путать с CORS !
Вы не можете получить доступ к с разным началом с использованием JavaScript, это было бы огромным недостатком безопасности, если бы вы могли это сделать. Для браузеров того же происхождения блокируют сценарии, пытающиеся получить доступ к кадру с другим происхождением.
Происхождение считается другим, если не поддерживается хотя бы одна из следующих частей адреса:
://:/path/to/page.html
Протокол, имя хоста и порт должны быть одинаковыми для вашего домена, если вы хотите получить доступ к кадру.
Вот что произойдет, пытаясь получить доступ к следующим URL-адресам из http://www.example.com/home/index.html
URL RESULT
http://www.example.com/home/other.html -> Success
http://www.example.com/dir/inner/another.php -> Success
http://www.example.com:80 -> Success (default port for HTTP)
http://www.example.com:2251 -> Failure: different port
http://data.example.com/dir/other.html -> Failure: different hostname
https://www.example.com/home/index.html.html -> Failure: different protocol
ftp://www.example.com:21 -> Failure: different protocol & port
https://google.com/search?q=james+bond -> Failure: different hostname & protocol
-origin блокирует скрипты от доступа к содержимому сайтов с другим происхождением, если у вас есть обе страницы, вы можете обойти эту проблему, используя window.postMessage
и ее относительное message
событие для отправки сообщений между двумя страницами, например:
var frame = document.getElementById('your-frame-id');
frame.contentWindow.postMessage(/*any variable or object here*/, '*');
(см. основную страницу): window.addEventListener('message', function(event) {
// IMPORTANT: Check the origin of the data!
if (~event.origin.indexOf('http://yoursite.com')) {
// The data has been sent from your site
// The data sent with postMessage is stored in event.data
console.log(event.data);
} else {
// The data hasn't been sent from your site!
// Be careful! Do not use it.
return;
}
});
Этот метод может применяться в обоих направлениях, создавая слушателя на главной странице и получая ответы от фрейма. Та же логика также может быть реализована во всплывающих окнах и в основном в любом новом окне, создаваемом главной страницей (например, с использованием window.open()
), без какой-либо разницы.
Уже есть некоторые хорошие ответы на эту тему (я просто нашел их googling), поэтому для браузеров, где это возможно, ll ссылку относительный ответ. Однако помните, что отключение политики одного и того же происхождения (или CORS) повлияет только на на ваш браузер . Кроме того, при запуске браузера с настройками безопасности с одинаковым исходным кодом отключены доступ к веб-сайту для ресурсов с перекрестными источниками, поэтому он очень опасен и должен выполняться только для целей разработки.
Во-первых, только автоматически предположите, что платформа CSS необходима, или даже желательна. В зависимости от того, что Вы делаете и насколько хороший Вы в разметке + CSS, это не может стоить того. Статья Wikipedia едва царапает поверхность дебатов, которые я видел онлайн, например, этот критика платформы Сеток YUI .
, Если Вы решили, что платформа CSS для Вас, тогда необходимо решить, какие проблемы она будет решать для Вас. Как только у Вас есть тот список, можно начать сравнивать различные, чтобы видеть, как хорошо они решают проблемы.
Наконец, существует любой ряд незначительных факторов, которые могут сместить баланс для Вашего конкретного приложения. Уже с помощью YUI на сайте? Тогда Сброс , Основа , Шрифты , и Сетки комбинация может получить удар, и т.д.
два я видел, что ссылкой чаще всего является YUI's, и BluePrintCSS (вот сравнение ).
ОБНОВЛЕНИЕ: Одна вещь, которую я не видел явно обращенный платформой CSS, Тип Установки в сети к Сетке базовых линий (см. этот статья о создании к вертикальному ритму для получения дополнительной информации).
Вы идеально не делаете.
намного более удобно создать Ваше собственное готовое, чтобы пойти CSS, а не изучить запутанность платформы. YMMV, но я нашел их пустой тратой времени.
Afaik, два из большей части populars проект и 960 объединенных энергосистем .
у Обоих есть их преимущества. Мне нравится 960gs.
существует другой ТАК вопрос, дебатируя два здесь
Если Вы должны создать сложную сетку без ограничения ширины по умолчанию, жидкие и фиксированные столбцы, легкий вес, сетку базовых линий, дополнительный semanic, % и расположили базирующуюся сетку, мой совет является использованием мой CSS платформа Emastic .
при необходимости в чем-то дополнительном, простом, можно использовать Malo или что-то подобное для Светокопирования или 960.gs, но вес только 1 КБ Золотая Сетка . Будьте осторожны не всегда, CSS Платформа является хорошей идеей. Я также записал одно сообщение приблизительно , Когда использовать платформу CSS ?
Компас является интересно выглядящей платформой CSS. Это может выполнить проект использования, 960.gs, YUI и вероятно другие как основание, но просто втягивает то, что необходимо для Вашего проекта.
Я все еще должен разносторонне развить свой опыт с платформами CSS, но тот, который я работал с большинством, библиотека YUI CSS .
Это - четыре установки части - состоящий из сброса, пакета сеток, установка шрифтов (не совсем уверенный, что профессионалы использования, которые являются) и основная таблица стилей, которая применяет некоторое основное форматирование. Можно выбрать, какие части Вы хотите использовать, и они доступны для использования от CDN на Yahoo! и Google .
, мне нравится библиотека YUI, потому что это обеспечивает легко переключаемое расположение (только путем изменения одного класса, или идентификатор контейнерной обертки) - например yui-t4
предоставляет столбец на 180 пкс справа, yui-t3
предоставляет столбец на 300 пкс слева - эти шаблоны также берут размеры блока рекламы также, который полезен.
основная разметка не слишком плоха также:
<div id="doc"><!—-overall document wrapper-->
<div id="hd"><!--header / masthead--></div>
<div id="bd">
<div id="yui-main">
<div class="yui-b"><!--primary block--></div>
</div>
<div class="yui-b"><!--secondary block--></div>
</div>
<div id="ft"><!--footer--></div>
</div>