在虚拟onclick加上页面重新加载中使用#,第2部分 [英] Using a # in a dummy onclick plus page reload, part 2

查看:65
本文介绍了在虚拟onclick加上页面重新加载中使用#,第2部分的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚才问过这个问题,得到了一个很好的答案和一个参考

http://www.javascripttoolbox.com/bestpractices/new.php 。我只需要

来覆盖onclick并返回false。没什么大不了的!


但是,我发现我的代码在IE中工作正常(在
点击后没有URL中的#),但没有在FF中出现#在点击后的URL中)。任何人都可以告诉

我为什么?


if(link.attachEvent){eval(" link.attachEvent(''onclick'',function() {

GB_show(''" + part.strDesc +"'',''" + INFO_URL_BASE + part.infoUrl +"'',470,

600); return false;},false)"); }


else {eval(" link.addEventListener(''click'',function(){GB_show(''"

+ part。 strDesc +"'',''" + INFO_URL_BASE + part.infoUrl +"'',470,600);

return false;},false)"); }

感谢你们给予的任何帮助!


泰勒

I asked about this a while ago, and got a great answer and a reference
to http://www.javascripttoolbox.com/bestpractices/new.php. I just need
to override onclick and return false. No biggie!

However, I discovered that my code worked fine in IE (no # in URL after
click), but not in FF (# appears in URL after click). Can anyone tell
me why?

if(link.attachEvent) { eval("link.attachEvent(''onclick'',function() {
GB_show(''" +part.strDesc +"'', ''" +INFO_URL_BASE+part.infoUrl +"'', 470,
600); return false; },false)"); }

else { eval("link.addEventListener(''click'',function() { GB_show(''"
+part.strDesc +"'', ''" +INFO_URL_BASE+part.infoUrl +"'', 470, 600);
return false; },false)"); }
Thanks for any help you can give!

Tyler

推荐答案

在生成的源中,链接看起来像这样,顺便说一句:


< a href ="#" class =" rCatalogHeadSortable"

onclick =" ts_resortTable(this); return false;">

In the generated source the link looks like this, btw:

<a href="#" class="rCatalogHeadSortable"
onclick="ts_resortTable(this);return false;">





link = document.createElement(" a");

link.setAttribute(" href","#");


if(link.attachEvent){eval(" link.attachEvent(''onclick'',function(){

GB_show(''" + part.strDesc +"'',''" + INFO_URL_BASE + part.infoUrl +"'',470,

600); return false;},false)");

}

else {

eval(" link.addEventListener(''click'',function(){GB_show(''" ;

+ part.strDesc +"'',''" + INFO_URL_BASE + part.infoUrl +"'',470,600);

返回false ;},false)");

}


我用过


try {// IE将不允许在元素后设置name属性

创建

link = docume nt.createElement("< a name =''itemNo |" + intPartId +"''

href =''#itemNo |" + intPartId +"''/>");

} catch(e){

link = document.createElement(" a");

link.setAttribute(" name"," itemNo |" + intPartId);

link.setAttribute(" href"," #itemNo |" + intPartId);

}

//点击产品说明时,点击锚点点击

top;不能只使用#,因为这会在FF中断,除非在

页面上定义了

if(link.attachEvent){

eval( " link.attachEvent(''onclick'',function(){GB_show(''" + part.strDesc

+"'',''" + INFO_URL_BASE + part.infoUrl +"'',470,600);},false)");

}

else {

eval(" link.addEventListener(''click'',function(){GB_show(''"

+ part.strDesc +"'',''" + INFO_URL_BASE + part.infoUrl +" ;'',470,600);

},false)");

}

它还有额外的定位奖励项目点击页面顶部

,非常适合我。我认为FF会死,因为它正在寻找明确定义的锚#,而IE隐含地只是滚动到顶部的
。仍然....我想知道为什么我的# onclick

死于FF而不是IE ...

Logos写道:
instead of

link =document.createElement("a");
link.setAttribute("href","#");

if(link.attachEvent) { eval("link.attachEvent(''onclick'',function() {
GB_show(''" +part.strDesc +"'', ''" +INFO_URL_BASE+part.infoUrl +"'', 470,
600); return false; },false)");
}
else {
eval("link.addEventListener(''click'',function() { GB_show(''"
+part.strDesc +"'', ''" +INFO_URL_BASE+part.infoUrl +"'', 470, 600);
return false; },false)");
}

I used

try { //IE will not allow name attribute to be set after element
creation
link =document.createElement("<a name=''itemNo|" +intPartId +"''
href=''#itemNo|" +intPartId +"'' />");
} catch (e) {
link =document.createElement("a");
link.setAttribute("name","itemNo|" +intPartId);
link.setAttribute("href","#itemNo|" +intPartId);
}
//when clicking a product description, scroll the anchor clicked to the
top; cannot just use #, as this breaks in FF unless # is defined on the
page
if(link.attachEvent) {
eval("link.attachEvent(''onclick'',function() { GB_show(''" +part.strDesc
+"'', ''" +INFO_URL_BASE+part.infoUrl +"'', 470, 600); },false)");
}
else {
eval("link.addEventListener(''click'',function() { GB_show(''"
+part.strDesc +"'', ''" +INFO_URL_BASE+part.infoUrl +"'', 470, 600);
},false)");
}
which has the added bonus of positioning the item clicked at the top of
the page, very nice for me. I think FF dies because it is looking for
an explicitly defined anchor "#", whereas IE implicitly just scrolls to
the top. Still....I would like to know for sure why my "#" onclick
dies on FF but not IE...
Logos wrote:
我刚才问过这个问题,得到了很好的答案以及 http://www.javascripttoolbox.com/的参考资料bestpractices / new.php 。我只需要
覆盖onclick并返回false。没什么大不了的!

然而,我发现我的代码在IE中运行良好(点击后没有URL中的#),但在FF中没有#(点击后#出现在URL中)。谁能告诉我为什么?

if(link.attachEvent){eval(" link.attachEvent(''onclick'',function(){
GB_show(' '" + part.strDesc +"'',''" + INFO_URL_BASE + part.infoUrl +"'',470,
600); return false;},false)"); }

else {eval(" link.addEventListener(''click'',function(){GB_show(''"
+ part.strDesc +"'',' '" + INFO_URL_BASE + part.infoUrl +"'',470,600);
return false;},false)"); }

感谢您提供任何帮助!

Tyler
I asked about this a while ago, and got a great answer and a reference
to http://www.javascripttoolbox.com/bestpractices/new.php. I just need
to override onclick and return false. No biggie!

However, I discovered that my code worked fine in IE (no # in URL after
click), but not in FF (# appears in URL after click). Can anyone tell
me why?

if(link.attachEvent) { eval("link.attachEvent(''onclick'',function() {
GB_show(''" +part.strDesc +"'', ''" +INFO_URL_BASE+part.infoUrl +"'', 470,
600); return false; },false)"); }

else { eval("link.addEventListener(''click'',function() { GB_show(''"
+part.strDesc +"'', ''" +INFO_URL_BASE+part.infoUrl +"'', 470, 600);
return false; },false)"); }
Thanks for any help you can give!

Tyler






徽标写道:
在生成的源中,链接看起来像这样,顺便说一句:

< a href ="#" class =" rCatalogHeadSortable"
onclick =" ts_resortTable(this); return false;">
In the generated source the link looks like this, btw:

<a href="#" class="rCatalogHeadSortable"
onclick="ts_resortTable(this);return false;">




并且在Firefox中发生任何javascript错误?

因为如果它发生那么return false永远不会被执行。



And does any javascript error occur in Firefox?
Because if it occurs then the "return false" will never be executed.


这篇关于在虚拟onclick加上页面重新加载中使用#,第2部分的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆