假設我有一個ASP.NET頁面供其他站點在其內呈現。進一步假設我的頁面包含一些服務器端<asp:LinkButton>
控件,它們被渲染爲<a href="javascript:__doPostBack(...)">
鏈接。asp:LinkButton不能在iframe中工作
我會很高興if _ doPostBack()將在iframe中執行,但它不會 - 相反,我會在控制檯中得到「 _doPostBack未定義」錯誤。我認爲這是因爲它試圖在外部頁面上執行它,因爲它是一個href =「javascript:...」鏈接,而不是普通的DOM事件。
如何在不改變LinkButton的情況下克服這一點?有沒有更好的方法來運行我點擊按鈕所需的服務器端代碼?
編輯:我添加了一個<a href="javascript:alert(document.title)">test</a>
並點擊它,我得到了我的外部頁面的標題,而不是我的頁面在iframe中的標題。
您的回傳將不會僅在iframe本身內與父窗口進行交互。如果你想從iframe傳遞信息給父母,你可能需要潛入javascript來實現這一點。 – Caimen
頁面是否位於同一個域中?如果是這樣,應該可以用一個小小的Javascript。如果沒有,那麼使用JS絕對沒有辦法做到這一點,因爲它違反了[相同的原產地政策](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Same_origin_policy_for_JavaScript) – Basic
頁面沒有在同一個域上,但我很樂意在iframe中執行__doPostBack()。相反,我在控制檯中收到「__doPostBack未定義」錯誤。 (我已經確認__doPostBack是在iframe中定義的,但不在外部頁面上)。我認爲這是因爲它試圖在外部頁面上執行它,因爲它是一個href =「javascript:...」鏈接,並且不是一個普通的DOM事件。我明白這是正確的嗎? –