我试图将SendOwl购物车整合到我的应用程序中(应用程序的详细信息在最后)。按钮onclick和href之间的区别
为了演示这个问题,我使用纯HTML/Javascript创建了一个简单的片段。在HTML的头部部分中,我有这样的:
<script type="text/javascript">
function SendOwl(url) {
window.location.href=url;
}
</script>
<script type="text/javascript" src="https://transactions.sendowl.com/assets/sendowl.js" ></script>
在主体我有这样的:
实施例1:打开结帐形式在它自己的窗口(不希望的行为):
<input type="button" onclick="SendOwl('https://transactions.sendowl.com/products/8/5C080C0F/purchase');" value="On Click" />
屏幕截图1:注意网址已更改,它不是覆盖图(与2相比)。
实施例2:打开在模式窗口作为覆盖(期望的行为)结帐形式:
<a href='https://transactions.sendowl.com/products/8/5C080C0F/purchase'>a href</a>
截图2:URL保持相同,但形式在一个打开覆盖。
您还可以看到SendOwl的演示页面上进行现场演示。
我的应用程序基于GWT(SmartGWT是精确的)。在我的应用程序中,我调用button onclick处理函数调用一个使用JSNI调用调用Buy Now链接的Javascript(如下所示)。但是“立即购买”链接总是在完整窗口中打开,如上面的示例1所示。
public static native void onBuyNowClick(String url) /*-{
$wnd.SendOwl(url);
}-*/;
我试过$wnd.open(url)
但它有相同的行为。
我如何得到第一个例子像第二个那样行为但仍然使用onclick按钮?
UPDATE:
神奇的是在sendowl.js脚本。如果我删除该脚本,那么这两个示例的工作方式都是相同的。如果我能弄清楚这个脚本是如何工作的,它可能会提供一些线索,使示例1的工作方式与示例2相同。
谢谢。
要在新窗口中打开经典href,您可以使用'target =“_blank”' – NiKoLaPrO
这不是问题。我知道如何在新窗口中打开链接。 href示例(#2)是所需的行为。要求是保持在同一个窗口中,并在当前窗口的叠加层中显示结帐表单。如果我可能要求您转到SendOwl演示页面(https://www.sendowl.com/demo)并点击信用卡演示按钮以查看它是如何工作的。希望这会使需求更加清晰。 – DFB
我加了答案,可以帮你 – NiKoLaPrO