2014-10-29 28 views
0

我敢肯定,這聽起來有點古怪,但這裏的背景...編輯的div通過jQuery是圍繞一個iframe從內部說的iframe

我們利用加載它們聊天程序的企業,所以我們可以支持我們的客戶,進入我們的頁面。這是通過JavaScript和jQuery做,並創建一個像這樣的結構:

<div id="myid" style="...; right: 0px;..."><div><iframe></iframe></div></div> 

有很多更多到,但這些都是重要的部分。現在,該工具允許我們將自定義腳本放置在iframe中。我的目標是去掉通過下面的代碼完成的「right:0px」,但我不想將該代碼放在該工具集成的每個頁面上。我想將它加載到工具中,並在創建iframe和div時運行它。在父

工作代碼:

$(document).ready(function() { 
    function checkPos() { 
    $('#myId').each(function() { 
     var oldstyle = $('#myId').attr('style'); 
     var newstyle = oldstyle.replace(' right: 0px;',''); 
     $('#myId').attr('style', newstyle); 
    }); 
    setTimeout(checkPos, 100); 
    }; 
    $(document).ready(function() { 
    setTimeout(checkPos, 100); 
    }); 
}); 

一旦放置在代碼中包括他們提供的方法,我也有它等到div標籤實際上有麻煩了「右:0像素;」在它的風格標籤中。我需要運行的唯一的事情就是三行$('#myId').each(function()

基本上,我需要具有在iframe腳本靶向的iframe嵌套在div幫助。

回答

0

假設任何工具的使用實際上,您可以在自定義腳本中的iframe呈現的內容傳遞(似乎腥我),在jQuery的修改樣式的更好的辦法是使用CSS功能:

$('#myId').css('right', '0px'); 

通知我刪除了$.each功能也是如此。你的目標是一個帶有ID的元素,所以不需要迭代。

編輯:

總之,回到延遲執行當目標,#myId,實際並不存在的問題。如果他們真的把JavaScript注入到他們的頁面中(再次,看起來很可疑),那麼將上面的代碼附加到$(document).ready()事件應該可以做到這一點,只要這個監聽器被附加到他們的文檔

如果一切都失敗,嘗試使用waitUntilExists插件,在這裏:

來源:

https://gist.github.com/buu700/4200601

相關問題:

How to wait until an element exists?

+0

真正的問題是, Div的樣式和ID實際上並未立即填充,它首先被創建,然後元素的樣式標籤被添加稍後,不要太晚,請注意,但是,如果僅僅運行在iframe外部工作的三個命令,則不會在其中工作。 – 2014-10-29 19:42:06

+0

肖恩,看我的編輯。 – foxygen 2014-10-29 19:46:44

+0

'$(document).ready()'函數是我嘗試的第一件事。我甚至無法得到一個'alert('Hello World')'彈出。如果我單獨提出alert('Hello World')',那確實會彈出。 – 2014-10-29 19:49:03