2012-12-23 39 views
0

的問題基本上,即時通過JavaScript來刷新頁面,當價格達到期望價格時,它會查找價格併購買商品。iFrame.contentDocument

我得到它沒有iframe的工作,但我需要工作在iframe,這是問題達成。

如果你去了這個網頁:[http://m.roblox.com/items/100933289/privatesales]

,跑這個代碼:

alert(document.getElementsByClassName('currency-robux')[0].innerHTML); 

你會得到最低價格的警報。在代碼中,這並不工作(因此,我的問題。)

嘗試運行下面的代碼此頁面上得到它的工作[http://www.roblox.com/Junk-Bot-item?id=100933289]

var filePath = document.URL; 
var itemid = filePath.slice(((filePath.search("="))+1)); 
var mobileRoot = 'http://m.roblox.com/items/'; 
var mobileEnd = '/privatesales'; 
var mobileFilePath = mobileRoot+itemid+mobileEnd; 

var iframe2 = '<iframe id="frame" width="100%" height="1" scrolling="yes"></iframe>'; 
document.write(iframe2); 
var iframe = parent.document.getElementById("frame"); 
iframe.height = 300; 
iframe.width = 500; 
iframe.src = mobileFilePath; 
var price; 
var snipe = false; 
var lp = Number(prompt("Snipe Price?")); 
document.title = "Sniping"; 

function takeOutCommas(s){ 
    var str = s; 
    while ((str.indexOf(",")) !== -1){ 
     str = str.replace(",",""); 
    } 
    return str; 
} 

function load() { 
    if (snipe == false) { 
     tgs = iframe.contentDocument.getElementsByClassName('currency-robux'); 
     price = Number((takeOutCommas(tgs[0].innerHTML))); 
     alert(price); 
    } 
} 

iframe.onload = load; 

回答

0

你可以嘗試有兩個頁面—的一個從「m.roblox.com」和從「www.roblox.com」 —添加一個在頭頂跟進:

<script> 
    document.domain = "roblox.com"; 
</script> 

代碼從不同的域將不會被允許看在彼此的頁面內容,但如果你設置域到相同的後綴,那麼它應該工作。

0

如果您通過共享相同的document.domain="roblox.com"代碼無法使其工作,那麼您可以嘗試將消息發佈到iframe。

把這個iframe的頁面內:

window.addEventListener('message',function(e) { 
}); 

在父頁面執行此傳遞消息(可以是一個字符串或對象,任何事情真的)到IFRAME:

document.getElementById("frame").contentWindow.postMessage({ "json_example": true }, "*"); 

將此放在父級中以聽取消息:

window.addEventListener("message", messageReceived, false); 
function messageReceived(e) { 
} 

從iframe內張貼消息退出:

window.parent.postMessage('Hello Parent Page','*'); 
相關問題