假设我有一个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事件。我明白这是正确的吗? –