Smalltalk seaside:html anchor上的2个事件

Smalltalk seaside:html anchor上的2个事件,smalltalk,seaside,Smalltalk,Seaside,在seaside,我需要做两件事——回调和点击链接转到另一个url(google.com),但我不能同时做这两件事。这里可能出了什么问题?有什么办法我可以同时做这两件事吗 html anchor newTarget url: 'www.google.com'; callback: [Transcript show: 'clicked on google.com']; with: ('www.google.com') . 因为>>callback:和>>url:都会更新锚

在seaside,我需要做两件事——回调和点击链接转到另一个url(google.com),但我不能同时做这两件事。这里可能出了什么问题?有什么办法我可以同时做这两件事吗

html anchor
    newTarget url: 'www.google.com';
    callback: [Transcript show: 'clicked on google.com'];
    with: ('www.google.com') .

因为>>callback:和>>url:都会更新锚点标记上的href属性,所以不能在同一锚点上同时使用这两个属性。您必须编写一个回调方法来解决这个问题,该方法执行您的逻辑,然后使用javascript在新窗口中打开页面


希望有帮助

不能使用锚点的默认单击行为来完成此操作。 下面的代码片段演示了如何使用ajax调用实现这一点,ajax调用在回调中执行您的操作,并将到其他url的导航设置为ajax“oncomplete”操作

html anchor
   url: 'javascript:{}';
   onClick: (html jQuery ajax 
                        callback: [ ... ];
                        onComplete:(html javascript goto:'http://www.google.com'));
    with: 'http://www.google.com'.

该代码段使用“javascript:{}”代码作为url,取消锚点上的默认单击操作。在某些情况下,我也看到了“#”的用法,但根据我的经验,它也会将浏览器滚动到顶部。接下来,它设置适当的“单击”处理程序来启动ajax请求,如我前面所述。

我尝试使用上述代码,对于回调,我有一个脚本显示,但它不起作用。html锚url:'javascript:{}';onClick:(htmljqueryajax回调:[文本显示:'Hello'。];onComplete:(htmljavascript转到:'www.google.com');有:“www.google.com”。好的。。。您需要将http://添加到url中,否则浏览器会将其视为相对url。我尝试使用http,但仍然不起作用。当我尝试粘贴代码时,它会删除http。html锚url:'javascript:{}';onClick:(htmljqueryajax回调:[文本显示:'点击谷歌');onComplete:(htmljavascript转到:');使用:“”。