在虚拟onclick加上页面重新加载中使用#,第2部分 [英] Using a # in a dummy onclick plus page reload, part 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屋!