Я искал этот форум, я нашел несколько тем о моей проблеме, но я не программист, и я не мог использовать ни одно из решений, которые я нашел здесь, потому что мой код отличается от других решений, предоставленных другим пользователем.
Пожалуйста, ребята, у меня есть следующая проблема: я запустил сайт недвижимости, который все еще находится в joomla 1.5 (уже работает с переходом на 2.5, что является болезненным для моей системы), и когда пользователь нажимает ссылку «связаться с нами» внутри на странице сведений о свойствах открывается окно javascript с короткой формой для сбора пользовательских вопросов о собственности, которую он проверяет на нашем сайте недвижимости.
проблема в том, что очень часто один пользователь не заканчивает заполнять форму и щелкает обратно в родительском окне, оставляя дочернее окно JS скрытым в нижней части страницы.
когда это произойдет, если пользователь снова нажмет на ссылку «связаться с нами» на другой странице свойств (или даже на той же странице, если он забыл, что он уже открыл окно контакта), дочерние окна остаются скрытыми родительской папкой, поэтому я был поиск способа изменить способ, которым моя система открывает это дочернее окно, и поместить некоторый код, чтобы окно ребенка оставалось на вершине страницы.
другим решением было бы отключить родительское окно, пока пользователь не закроет дочернее окно или не представит форму дочернего окна. Я попытался решить эту проблему puttin тайм-аут, чтобы автоматически закрыть окно, но, к сожалению, это не решает главной проблемы, которая заключается в том, что дочернее окно должно оставаться на вершине, пока оно не будет закрыто до тех пор, пока форма не будет отправлена. Если вам нужно удалить функцию тайм-аута, чтобы позволить дочернему окну оставаться на вершине, это будет нормально, мы можем удалить таймаут, если это необходимо.
МНОГО СПАСИБО В РАМКАХ КАЖДОГО ПОМОЩИ, я вставляю здесь код, вызывающий дочернее окно, а затем код дочерних окон, которые находятся в разных файлах .php:
Так моя система вызывает дочернее окно:
<br> <b> <font size="3"> <a style="color: #bd0000" href="javascript:void(0)" onclick="window.open('<?php echo $rutaC ; ?>','win2','<?php echo $statusC; ?>');" title="<?php echo JText::_('CONTACT US!'); ?>"><?php echo JText::_('CONTACT US!'); ?> </a> </font> </b> <br />
И это код файла php дочернего окна:
<?php defined('_JEXEC') or die('Restricted access'); JHTML::_('behavior.tooltip'); JHTML::_('behavior.formvalidation'); $user =& JFactory::getUser(); $document =& JFactory::getDocument(); $component = JComponentHelper::getComponent( 'com_formacion' ); $params = new JParameter( $component->params ); $u =& JFactory::getURI(); //echo $u->getHost(); $title = JText::_('CONTACT FORM').' '.$this->ThisMenu->name; $document->setTitle( $title ); $document->setDescription( $title ); $document->setMetadata('keywords',$title); $contact_send = JRequest::getVar('contact_send', 0, '', 'int'); if($contact_send == 1){ ?> <div style="width:100%; background:#E6E6C6; text-align:center;"> <div> <br /><br /> <p style="font-size:18px;"> <?php echo ' '.JRequest::getVar('msg');?> </p> <br /><br /> <?php if(JRequest::getVar('popup')==1){ ?> <a href="#" onclick="window.close()"><?php echo JText::_('Close Window'); ?></a><br /><br /> <script type="text/javascript">window.setTimeout(function(){ window.close(); } , 4000); </script> <?php } ?> </div> </div> <?php }else{ ?> <script type="text/javascript"> function ValidateCaptcha(a,b,c){ var progressvc = $('progressvc'); new Ajax("<?php echo JURI::base();?>index.php?option=com_properties&controller=ajaxCaptcha&format=raw&task=ValidateCaptcha", {method: 'get', onRequest: function(){progressvc.setStyle('visibility', 'visible');}, onComplete: function(){progressvc.setStyle('visibility', 'hidden');}, update: $('ValidateCaptcha'), data: 'captchacode='+a+'&captchasuffix='+b+'&captchasessionid='+c}).request(); } </script> <style type="text/css"> <!-- .invalid { font-weight:bold; color: red; } --> </style> <div style="padding:10px;" > <script type="text/javascript">window.setTimeout(function(){ window.close(); } , 603000); </script> <form action="<?php echo JRoute::_( 'index.php' ); ?>" method="post" id="josForm2" name="josForm2" class="form-validate"> <input type="hidden" name="popup" value="" /> <div class="componentheading"></div> <table cellpadding="0" cellspacing="0" border="0" width="100%" class="contentpane"> <tr> <td width="100%" colspan="2"> <?php if($this->ThisMenu->text){ echo $this->ThisMenu->text; } ?> </td> </tr> </table> <table cellpadding="0" cellspacing="0" border="0" width="100%" class="contentpane"> <tr class="header" align="left" valign="bottom"> <img src="components/com_properties/includes/mail/contact/header-bg.jpg" alt="MYSITE" width="400" height="75" /> </tr> <script> var interval; var minutes = 10; var seconds = 0; window.onload = function() { countdown('countdown'); } function countdown(element) { interval = setInterval(function() { var el = document.getElementById(element); if(seconds == 0) { if(minutes == 0) { el.innerHTML = "countdown terminado!"; clearInterval(interval); return; } else { minutes--; seconds = 60; } } if(minutes > 0) { var minute_text = minutes + (minutes > 1 ? ' minutos' : ' minuto'); } else { var minute_text = ''; } var second_text = seconds > 1 ? 'segundos' : 'segundo'; el.innerHTML = minute_text + ' ' + seconds + ' ' + second_text + '.'; seconds--; }, 1000); } </script> <tr> <td width="30%" height="40"> <b><label id="namemsg" for="name"><?php echo JText::_( 'NAME' ); ?>: </label></b> </td> <td><input type="text" name="name" id="name" size="40" value="<?php echo $user->name;?>" maxlength="50" /></td> </tr> <tr> <td height="40"> <b><label id="emailmsg" for="email"><?php echo JText::_( 'EMAIL' ); ?>: </label></b> </td> <td><input type="text" id="email" name="email" size="40" value="<?php echo $user->email;?>" maxlength="100" /></td> </tr> <tr> <td width="30%" height="40"> <b><label id="namemsg" for="phone"><?php echo JText::_( 'PHONE' ); ?>: </label></b> </td> <td><input type="text" name="phone" id="phone" size="40" value="<?php //echo $this->user->get( 'name' );?>" maxlength="50" /></td> </tr> <tr> <td height="40"> <b><label id="textmsg" for="text"> <?php echo JText::_( 'MESSAGE' ); ?>: </label></b> </td> <td> <textarea name="text" id="text"cols="40" rows="7"></textarea> </td> </tr> <tr> <td colspan="2" height="40"> <input type="checkbox" name="email_copy" id="contact_email_copy" value="1" /> <label for="contact_email_copy"> <?php echo JText::_( 'send a copy to myself' ); ?> </label> </td> </tr> <tr> <td colspan="2"> <?php $dispatcher = &JDispatcher::getInstance(); //JPluginHelper::importPlugin('system'); $results = $dispatcher->trigger( 'onCaptchaRequired', array( 'user.contact' ) ); if ($results[0]){?> <table> <tr><td align="center" colspan="2"> <span><?php echo JText::_( 'CAPTCHACODE_FORM_TITLE' ) ?></span> </td> <td colspan="2"></td> </tr> <tr> <?php $dispatcher->trigger( 'onCaptchaView', array( 'user.contact', 0, '', '' ) ); ?> <td width="20px"> <div id="ValidateCaptcha" style="float:left;"></div> </td> <td> <div style="float:right"> <a style="cursor:pointer;" onclick="ValidateCaptcha(document.getElementById('captchacode1').value,document.getElementById('captchasuffix').value,document.getElementById('captchasessionid').value)"><?php echo JText::_('Test Code'); ?></a> </div> </td> </tr> <tr> <td colspan="3"><div id="progressvc" style="float:left;"></div> </td> </tr> </table> <?php } ?> </td> </tr> </table> <div align="center" style="margin-bottom:20px;"> <button class="button validate" type="submit"><?php echo JText::_('Send'); ?></button> </div> <tr valign="top"> <td height="20" class="texto"><font size="3">This window will be closed in </font></td> <td class="texto"><font size="3"><br/><br/><div id='countdown'></div> <br/>Click here before the time runs out.</td><br/> </tr> <input type="hidden" name="option" value="com_xxxxxx" /> <input type="hidden" name="controller" value="contact" /> <input type="hidden" name="task" value="send_contact" /> <input type="hidden" name="product_id" value="<?php echo JRequest::getVar('id');?>" /> <?php echo JHTML::_( 'form.token' ); ?> </form> <?php if(JText::_('FIELDAREREQUIRED')!='FIELDAREREQUIRED'){echo JText::_('FIELDAREREQUIRED');} ?> <?php if(JText::_('SENDMAILTO')!='SENDMAILTO'){echo JText::_('SENDMAILTO');} ?> <?php if(JText::_('OURPHONE')!='OURPHONE'){echo JText::_('OURPHONE');} ?> </div> <?php } ?>