请教一下OED的js如何去除"&nbsp"?

各位好,请教一下

从下图的箭头可见,Compounds和entry book之间有一空行,用GD检查发现是一个"&nbsp",但我进mdx里察看又没发现,因此推测是js的关系,请问是否有朋友可以帮忙修改js,去除"&nbsp"呢?谢谢。

附上CSS和js
OED.css (56.5 KB)
OED js.rar (32.4 KB)
OED是这个版本https://forum.freemdict.com/t/topic/3041/257

1 Like

对喔,抱歉,那请问您有办法帮忙吗?感谢。 :smile:

var parents = document.getElementsByClassName("senseWrap");
for(var i =0; i < parents.length ; i++) { parents[i].childNodes && parents[i].childNodes[0].nodeType==3 && parents[i].childNodes[0].remove() }

没这本词典,没实测,但应该是这样写,可以在控制台试试,如果还要删除 corner 里的,把上面的代码再复制两行,把 senseWrap 替换成 corner 就行。

2 Likes

哇!成功了,感谢。不过不知为何,这里的还没有消掉,可否再请帮忙一下呢? :smile:
附上mdx 更名为OED即可。链接: https://pan.baidu.com/s/1QVKmLn4AlLa_Q8_WP7QcWQ 提取码: fnyu

我下不动这么大的词典,理论上上面的代码没问题,可能加载顺序错乱了,把上面的代码删了,试试下面这个,粘贴到 js 文件最后一行就可以。

function docReady(fn){if(document.readyState==="complete"||document.readyState==="interactive"){setTimeout(fn,1)}else{document.addEventListener("DOMContentLoaded",fn)}}docReady(function(){var parents=document.getElementsByClassName("senseWrap");for(var i=0;i<parents.length;i++){parents[i].childNodes&&parents[i].childNodes[0].nodeType==3&&parents[i].childNodes[0].remove()}});
3 Likes

成功了,真好,再一次地感谢您! :smile:

您好,冒昧再请教一下,底下的情形,有没有办法藉由js让"Form history"前面加一个"&nbsp",但是去除后面的"&nbsp",也就是让"Form history"前面空一行,但后面的空行取消。同样的情况,可否替"Semantic history"保留前面的空行,而消除后面的呢?主要是想让层次结构更清晰。谢谢!

PS 如果这样太麻烦,那退而求其次,可否至少让"Form history"前面加一个"&nbsp",也就是让"Form history"和"Semantic history"格式一致,前后都有空行。感谢!

附上该条目的html给您 OED-time.rar (333.1 KB)

form history和 semantic history 这些前后没有明显的标签,js 处理不了这种情况。可以考虑给 etymNote 这个标签用 css 加个上边距。给 .etymNode > div 加上行高。

.etymNote {
	margin-top: 5px!important;
}
.etymNote > div {
	line-height: 5px!important;
}
1 Like

前辈您好,

.etymNote > div {
line-height: 5px!important;
}

这个似乎会影响到后面的div :sweat_smile:

不过光是用了前面这一个,

.etymNote {
margin-top: 5px!important;
}

版面已经有所改进了 :smile:

可以加个 not 选择器排除正常的 div:

.etymNote {
	margin-top: 5px!important;
}
.etymNote > div:not([class]), .etymNote > div:not([id]){
	line-height: 5px!important;
}
3 Likes

多谢了,目前结构更加清晰了

遇到高人,苦思半天无法解决的问题,您三两下就处理掉了,感谢! :smile:

佩服,看明白都要半天,这隔空不用调试就写出来了。