2013-09-02 3 views
0

У меня есть iframe для сторонней системы и которая при вызове обновляет запись базы данных, а затем отображает сообщение с подтверждением. Я хотел бы изменить текст подтверждения с помощью jQuery, но не могу заставить его работать. Это код, который у меня есть до сих пор. Вызов сторонней системы работает, но текст замены не отображается. Любые указатели, пожалуйста? Спасибо.jQuery replaceWith issue

<script type="text/javascript"> 

    $.urlParam = function(name){ 
     var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href); 
     if (!results) { return ''; } 
     return results[1] || ''; 
    } 

    var lidval = $.urlParam('lid'); 
    var cidval = $.urlParam('cid'); 
    var cyidval = $.urlParam('cyid'); 
    //construct url 
    var crmurl ='http://somerandomhost.com/Portal/index.php?task=unsusbscribe&lid='+lidval+'&cid='+cidval+'&cyid='+cyidval; 

    jQuery(function($){ 
     $('#crm').attr('src', crmurl); 
    }); 

</script> 

<iframe frameborder="0" id="crm" scrolling="no" width="100%" src=""></iframe> 

<script type="text/javascript"> 
    function($){ 
     $('crm').replaceWith('Replacement text goes here'); 
    }; 
</script> 
+0

Я думаю, вы пропустили #: $ ('# crm'). ReplaceWith («Текст для замены идет здесь»); – Greenhorn

+0

функции replaceWith() заменяют объекты не строками ... для строк просто используйте замену javascript. – maverickosama92

+0

$ ('crm') не является допустимым селектором, замените его на $ ('# crm') –

ответ

1

, если вы хотите, чтобы показать строку в irframe попробовать это:

PURE JS:

var doc = document.getElementById('crm').contentDocument; 
doc.body.innerHTML = 'Replacement text goes here'; 

jQuery:

var doc = $('#crm')[0].contentDocument; 
$(doc.body).html('Replacement text goes here') 
+0

Благодарим вас за заменяющий текст (кратко), прежде чем он будет заменен исходным текстом iframe. Вы знаете, как я могу «надолго» заменить текст, пожалуйста? –

+0

@Clive van Hilten, извините, я не могу понять вашу проблему, можете ли вы поставить скрипку своей проблемы здесь? –

+0

Благодаря пользователю Pointy, мне удалось сделать обходное решение, которое предполагает скрытие iframe - см. Http://stackoverflow.com/questions/18575281/jquery-sequence-of-page-load-issue –

1

Чтобы изменить содержание в IFRAME вы можете попробовать ниже код

var ifr = $('#crm')[0].contentWindow.document, 
    ifbody = $('body',ifr); 
ifbody.html('Replacement text goes here'); 
+0

Спасибо - в соответствии с моим комментарием в ответе ниже, для этого решения заменяющий текст показывает (кратко), прежде чем он будет заменен оригинальным текстом iframe. Вы знаете, как я могу «надолго» заменить текст, пожалуйста? –

+0

Попробуйте привязать код выше для выполнения onload iframe. –