2014-08-28 5 views
0

У меня есть HTML-страница, которая загружает некоторый контент в iframe с помощью удаленного JS. Я хочу заменить текст «премиальный контент» на что-то еще.Изменение текста внутри iframe с помощью JS

То, что я пытаюсь это:

<!DOCTYPE html> 
<html> 
<body> 
<script type="text/javascript" src="http://gaand.comli.com/no.js"></script> 

<img src="psss" onerror="myFunction()"></img> 
<script> 
function myFunction() { 
    var x = document.getElementById("overlay_iframe"); 
    var y = x.contentDocument; 
    y.document.body.innerHTML = y.document.body.innerHTML.replace('premium', 

'newtext'); 
} 
</script> 
</body> 
</html> 

Есть ли способ, чтобы изменить его, как только будет загружен полностью страница?

ответ

1

Вы можете использовать jquery, чтобы иметь событие при загрузке страницы, а затем заменить содержимое html.

$(document).ready(function() { 
    $("#overlay_iframe").html($("#overlay_iframe").html().replace("premium","newtext")); 
}); 
+0

До сих пор не работает. Я могу легко изменить текст на странице. Но в этом случае с iframe не работает – user1111111111111

0

Если iFrame не находится на вашем сервере, вы не можете его изменить. Я бы предложил использовать PHP

file_get_contents() 

и заменить его в строке.

0

Вы можете попробовать использовать jQuery .contents(), чтобы вернуть объект содержимого iframes, а не манипулировать им. jQuery .contents()

0

Edit, обновленный

Попробуйте

$.getScript("http://gaand.comli.com/no.js") 
.done(function(script) { 
    s = setInterval(function() { 
     $("iframe").contents() 
     .find("body").text(function(_, o) { 
     return o.replace("premium", "newText"); 
     }) && clearInterval(s); 
    }, 10); 
}); 

jsfiddle http://jsfiddle.net/guest271314/whjqqtco/

+0

он возвращает мне пустую страницу без какого-либо фрейма – user1111111111111

+0

Пробовал без '$ .getScript()'? С тегом 'script', как в OP? Затем 'setInterval' в следующем блоке' script'? – guest271314

+0

да пробовал только сейчас. Снова я вижу «область контента для премиум-класса». Его заменить не на newText – user1111111111111

Смежные вопросы