2013-05-23 6 views
0

У меня есть страница на сайте с iframe. домен iframe и мой домен домена разные. В iframe на $(document).ready выполняется запрос ajax. Ответ на этот запрос ajax, вставленный в div. Ajax ответ выглядит следующим образом:Изменить содержимое iframe с помощью javascript или css

<ul> 
    <li><a href="example.com/page-1">5 currency</a></li> 
    <li><a href="example.com/page-2">10 currency</a></li> 
    <li><a href="example.com/page-3">some other text</a></li> 
    <li><a href="example.com/page-4">5 currency</a></li> 
    <li><a href="example.com/page-3">some other text 2</a></li> 
    .... 
    <li><a href="example.com/page-n">54 currency</a></li> 
</ul> 

Мне нужно заменить слово currency с currency2. Я знаю, что Same Origin Policy не позволяет изменять контент с помощью javascript. Любой способ сделать это с помощью css? или любым другим способом?

Спасибо.

ответ

2

вы не можете сделайте это с помощью css или js.

jQuery/JavaScript: accessing contents of an iframe

единственный способ изменить AJAX ответ. если вы можете изменить $(document).ready вызов фрейма только тогда вы можете изменить АЯКС содержимое, следующий код

$.ajax({ 
success: function(resp){ 
resp.replace(/currency/g,'currency2'); 
} 
}) 
+0

страницу в запросе вызова Ajax IFRAME - Я не могу достичь. – Peter

+0

Я предполагаю, что вы не можете сделать это на стороне клиента. вы можете сделать это на сервере, загрузив документ так же, как браузер, и затем, разыгрывая его и извлекая из него необходимые вещи. –

+0

Ну, провайдер iframe согласится добавить мой js-код и 'resp.replace (/ currency/g, 'currency2');' работает. Спасибо всем за вашу помощь. – Peter

0

Если у вас нет доступа к самой разметке, которую вы показываете в своем iFrame, я не верю, что есть какой-то способ сделать это, я боюсь. Как вы уже определили: политики безопасности не позволяют этого (и даже если вы нашли обходной путь, это вряд ли будет работать в кросс-браузере).

CSS также не был бы здесь вариантом, так как он больше основан на dsplay, если вы не можете найти способ использовать: после псевдо класса, чтобы ввести «2».

Если у вас есть контроль страницы, где запрос AJAX делается, вы можете переключиться из текста очень легко с помощью JQuery заменить на ответ AJAX (или аналогичный):

ajaxResponse.replace('currency', 'currency2') 
Смежные вопросы