2011-04-07 60 views
1

我們有一位客戶,他需要我們通過iFrame在他們的網站中添加一個工具。在iFrame中,我們正在顯示產品,點擊「添加到購物車」鏈接時,它需要將產品添加到父文檔購物車。父母和孩子不在同一個域中。不幸的是,客戶無法向我們提供發佈到購物車的方法,我們所能做的就是調用他們的cart.add(qty,id)函數,但它不能在iFrame中工作,因爲iFrame顯然不會在「沒有可用的功能。另外,我們不能僅僅因爲我們無法訪問會話ID而將虛假信息僞造成購物車。幸運的是,我可以添加我需要的任何Javascript到他們的主頁面。來自父母的iFrame點擊監控

有沒有辦法讓我從父母處聽取iFrame中的點擊,然後從iframe中提取數量和產品ID值,然後執行cart.add函數?鑑於約束條件,是否有更好的方法來處理這個問題?

回答

0
+0

嗨布拉德,很高興知道你明白了,但現在鏈接已經死了。你能否提供更新的鏈接?謝謝! – Cogicero 2014-01-18 02:19:48

+0

該死的,它看起來像我寫的職位公司被收購,他們的網站和博客被關閉:( – 2014-01-22 10:47:12

+0

感謝歸檔,我找到了它!https://web.archive.org/web/20130403073354/http ://blog.igodigital.com/blog/notes-on-cyber-weekend-targeted-email-campaigns/enabling-cross-domain-js-with-iframes-the-fun-way – 2014-01-22 10:50:28

0

不使用iFrame。使用jquery .load()將整個其他網站放在div中。確保你的「點擊」是live(),這樣他們就可以捕捉添加內容的點擊,並且應該沒問題。我不知道你的加載網站有多大。同樣,如果你不需要所有的頭文件信息,你也可以只指定頁面的一部分來引入剛剛或特定的div。

+0

jQuery.load()將無法正常工作,因爲它也受限於相同的原始策略(正如API文檔中有關jQuery的其他註釋中所述 - http:// api。 jquery.com/load/) – 2011-04-07 15:12:34

+0

只要包含跨域Ajax插件,就可以實際使用jQuery.load。但是,問題在於其他「網站」實際上是一個完整的Rails應用程序。當我之前嘗試過這種方法時,它變成了一個巨大的痛苦,因爲您需要將應用程序之外的所有js邏輯移動到主框架中......巨大的頭痛。 – 2011-04-07 15:14:24

+0

對不起。沒有考慮跨域的事情。這不是一個優雅的解決方案,但我不知道可以有一個優雅的解決方案來處理這樣一個不雅的請求。 :/ – lupos 2011-04-07 15:23:14