2013-03-13 2 views
2

Я мытой межсетях, и нашел довольно много ответов, которые относятся к тому, что я хочу сделать, например:
Javascript - Get element from within an iFrame
How can I access iframe elements with Javascript?
Access iframe elements in JavaScriptИспользование JQuery для получения значения из элемента в плавающем фрейме

Без надлежащих результатов.

В настоящее время у меня есть тестовая коробка в iFrame. Из родителя мне нужно получить значение текстового поля onBlur().

Я в настоящее время не использую;

alert("before"); 
var iframe = document.getElementById('GeneralInformationPrivate.aspx'); 
var innerDoc = iframe.contentDocument || iframe.contentWindow.document; 

//innerDoc.getElementById("imageLoc").hide(); 

alert("after"); 

С прокомментированной строкой я вижу оба предупреждения. Без комментариев прокомментировал, что это не так далеко.
(Я спрятал его, как тест, который просто не работает).

Может ли кто-нибудь указать мне в правильном направлении.

Edit Загруженный HTML плавающего фрейма выглядит следующим образом:

<iframe id="GeneralInformationPrivate.aspx" class="iframetab" src="GeneralInformationPrivate.aspx"><!-- Controls Here --></iframe> 

Edit 2 В плавающие фреймы загружаются как так. (В родителю)

<div style="float: right; width: 570px;"> 
      <div id="tabs"> 
       <ul style=""> 
        <li><a class="tabref" href="#tabs-1" rel="GeneralInformationPrivate.aspx">General</a></li> 
        <li><a class="tabref" href="#tabs-2" rel="www.google.co.za">Friends</a></li> 
        <li><a class="tabref" href="#tabs-3" rel="">Challenges</a></li> 
       </ul> 
       <div id="tabs-1"> 
       </div> 

       <div id="tabs-2"> 
       </div> 

       <div id="tabs-3"> 
       </div> 
      </div> 
     </div> 

На документе нагрузки (еще в материнской)

// ++ IFRAME TABS 
      var $tabs = $('#tabs').tabs(); //Set the tab 

      //Loads the initial tab 
      function getSelectedTabIndex() { 
       return $tabs.tabs('option', 'selected'); 
      } 
      beginTab = $("#tabs ul li:eq(" + getSelectedTabIndex() + ")").find("a"); 

      //Send the correct data to load 
      loadTabFrame($(beginTab).attr("href"), $(beginTab).attr("rel")); 

      // Does something everytime you click the tab 
      $("a.tabref").click(function() { 
       //event code 
      }); 

      //Load the actual iFrame 
      function loadTabFrame(tab, url) { 
       if ($(tab).find("iframe").length == 0) { 
        var html = []; 
        html.push('<div class="tabIframeWrapper">'); 
        html.push('<iframe id="'+ url +'" class="iframetab" src="' + url + '">Load Failed?</iframe>'); 
        html.push('</div>'); 
        $(tab).append(html.join("")); 
        //$(tab).find("iframe").height($(window).height() - 80); // Set the height of the iFrame (Currently using CSS - See controlStyle.css iFrame) 
       } 
       return false; 
      } 

      //Make sure its only loaded on click 
      $("a.tabref").click(function() { 
       loadTabFrame($(this).attr("href"), $(this).attr("rel")); 
      }); 
      // -- IFRAME TABS 

Какие THEL загружает страницу в плавающем фрейме.

Редактировать 3 Содержания плавающего фрейма (пардон)

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GeneralInformationPrivate.cs" Inherits="member.Default2" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>General Information</title> 
</head> 
<body style="background: white"> 
    <form id="form1" runat="server"> 
     <div style="min-height: 100px; width: 100%; padding: 0px" id="divProInfo"> 
       <table style="width: 100%"> 
        <tr> 
         <td> 
          <div class="divRegInput" style="padding: 5px 0px 10px 15px"> 
           <asp:Label ID="Label12" runat="server" Text="Image URL" Font-Bold="True"></asp:Label> 
           <asp:Label ID="Label13" runat="server" Text="make yourself look good" CssClass="styleLabelWatermarkWashout"></asp:Label> 
           <br /> 
           <input id="imageLoc" class="styleTextBoxCenter Larger" /> 
          </div> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          <div class="divRegInput" style="padding: 5px 0px 10px 15px"> 
           <asp:Label ID="Label6" runat="server" Text="Website URL" Font-Bold="True"></asp:Label> 
           <asp:Label ID="Label7" runat="server" Text="show others where you came from" CssClass="styleLabelWatermarkWashout"></asp:Label> 
           <br /> 
           <asp:TextBox ID="TextBox1" runat="server" CssClass="styleTextBoxCenter Larger" /> 
           <asp:Label ID="lblWebsiteTitle" runat="server" CssClass="styleLabelWatermark"></asp:Label> 

          </div> 
         </td> 
        </tr> 
        <%--<tr> 
         <td> 
          <asp:Button ID="Button1" runat="server" Text="Button" CssClass="styleButtonGreenHolder" Height="43px" CausesValidation="False" OnClick="btnChangeChallenge_Click" Width="195px" /> 
         </td> 
        </tr>--%> 
       </table> 
      </div> 
     </div> 
    </form> 
</body> 
</html> 
+0

Это должно было быть сделано hey ... – TheGeekZn

+0

Вы можете разместить свой html-код или пример на jsfiddle? –

+0

Я добавил код. - С iFrame. Я никогда не удалял ничего, кроме случаев, когда другие элементы управления возились. – TheGeekZn

ответ

0

Я, наконец, наткнулся accross решения.

Мне пришлось ввести код в: $(window).load(function() {/*code*/}), после того, как все мои коды страниц.

Только тогда это сработало.

1

Линии

innerDoc.getElementById("imageLoc").hide(); 

... не удается, потому что DOM элементы не имеют функцию называется hide на них. Это вещь jQuery.

Вы можете обернуть элемент в экземпляре JQuery:

$(innerDoc.getElementById("imageLoc")).hide(); 
+0

Это срабатывает во втором предупреждении, но ничего не делает для контроля. – TheGeekZn

+0

@NewAmbition: Нам нужно больше контекста, чтобы помочь дальше. –

+0

Я добавил, как я загрузил iFrame – TheGeekZn

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