HTML - 如果成员名称 CLASS 为空,如何显示 "LOGIN"
HTML - How to display "LOGIN" if member name CLASS is empty
基本上,如果有人可以提供有关如何实现此目标的指导,那就太好了。
我使用第 3 个 SAS,当登录它时,它 returns class="SFnam" 的用户名可以显示在任何嵌入了关联 JS 的页面上在页面底部。
目前我使用以下 html 在登录时在屏幕右上角显示用户名:即 "Logged in as: BORIS SMITH",但是当用户未登录时显示"Logged in as:"。不理想。
如果 class="SFnam" 为空,我如何显示 "LOGIN"?
这是我正在使用的(在 Rafaels 输入之后):
<script type="text/javascript">
window.addEventListener("DOMContentLoaded", function(event) {
var spanElm = document.getElementById('myspan');
if(spanElm.classList.contains('SFnam'))
{
console.log('here');
}
else
{
console.log('here instead');
document.getElementsByTagName('user')[0].innerHTML = "LOGIN";
}
});
</script>
<style>
#loginwrapper {
margin: 0px 0px 0px Opx;
border: none;
cursor: pointer;
}
.logincontainer { text-align: right;}
user {
display: inline-flex;
background-color: #1f7665; color: #fff;
padding:2px 3px 1px 3px;
font-size:8px;
margin-right: 10px;
border-radius: 3px;
font-family: Raleway, Arial, Helvetica, 'Liberation Sans', FreeSans, sans-serif;
}
</style>
<div id="loginwrapper" title ="Click to Log in/out" onclick="window.open('/member-login.html','_self')">
<div class="logincontainer">
<user>Logged in as: <b><span style="text-transform:uppercase;" class="SFnam" id='myspan'></span></b>
</div>
</div>
登录span时结果为:
鲍里斯·史密斯< /span>
注销后跨度结果为:
<跨度class="SFnam">
我对此相当陌生,但我有一些基本编码等技能,如果以上内容构建不当,我深表歉意:(。
任何指导/帮助将不胜感激。
干杯
鲍里斯
已编辑:
另外值得注意的是每页底部的监听器脚本(不确定是否有帮助?:
<script>(function(){var i,j,a,x;try{x=localStorage.getItem("SF_nam");}catch(e){x="";}
try{for(a=document.querySelectorAll(".SFnam"),i=a.length-1;i>=0;i--)a[i].innerHTML=x?x:"";}catch(e){}
try{for(a=document.querySelectorAll(".SF_li"),i=a.length-1;i>=0;i--)a[i].style.display=x?"":"none";}catch(e){}
try{for(a=document.querySelectorAll(".SF_lo"),i=a.length-1;i>=0;i--)a[i].style.display=x?"none":"";}catch(e){}})();
</script>
这将根据包含或不包含文本的范围 class 相应地更改元素的文本。
function updateSpan()
{
var spanElm = document.getElementById('myspan');
if(spanElm.innerHTML)
{
document.getElementsByTagName('user')[0].innerHTML = "Logged in as " + spanElm.innerHTML;
}
else
{
document.getElementsByTagName('user')[0].innerHTML = "LOGIN";
}
}
window.addEventListener("DOMContentLoaded", function(event) {
updateSpan();
});
为您的跨度添加一个 ID,以便我们可以找到它
<span style="text-transform:uppercase;"class="SFnam" id='myspan'></span>
用这个更新你的底部脚本
<script>(function(){var i,j,a,x;try{x=localStorage.getItem("SF_nam");}catch(e){x="";}
try{for(a=document.querySelectorAll(".SFnam"),i=a.length-1;i>=0;i--)a[i].innerHTML=x?x:"";}catch(e){}
try{for(a=document.querySelectorAll(".SF_li"),i=a.length-1;i>=0;i--)a[i].style.display=x?"":"none";}catch(e){}
try{for(a=document.querySelectorAll(".SF_lo"),i=a.length-1;i>=0;i--)a[i].style.display=x?"none":"";}catch(e){}
updateSpan()})();
</script>
如果在执行期间发生更改,这将确保函数也会更新。
这是 JSFiddle
基本上,如果有人可以提供有关如何实现此目标的指导,那就太好了。
我使用第 3 个 SAS,当登录它时,它 returns class="SFnam" 的用户名可以显示在任何嵌入了关联 JS 的页面上在页面底部。
目前我使用以下 html 在登录时在屏幕右上角显示用户名:即 "Logged in as: BORIS SMITH",但是当用户未登录时显示"Logged in as:"。不理想。
如果 class="SFnam" 为空,我如何显示 "LOGIN"?
这是我正在使用的(在 Rafaels 输入之后):
<script type="text/javascript">
window.addEventListener("DOMContentLoaded", function(event) {
var spanElm = document.getElementById('myspan');
if(spanElm.classList.contains('SFnam'))
{
console.log('here');
}
else
{
console.log('here instead');
document.getElementsByTagName('user')[0].innerHTML = "LOGIN";
}
});
</script>
<style>
#loginwrapper {
margin: 0px 0px 0px Opx;
border: none;
cursor: pointer;
}
.logincontainer { text-align: right;}
user {
display: inline-flex;
background-color: #1f7665; color: #fff;
padding:2px 3px 1px 3px;
font-size:8px;
margin-right: 10px;
border-radius: 3px;
font-family: Raleway, Arial, Helvetica, 'Liberation Sans', FreeSans, sans-serif;
}
</style>
<div id="loginwrapper" title ="Click to Log in/out" onclick="window.open('/member-login.html','_self')">
<div class="logincontainer">
<user>Logged in as: <b><span style="text-transform:uppercase;" class="SFnam" id='myspan'></span></b>
</div>
</div>
登录span时结果为: 鲍里斯·史密斯< /span>
注销后跨度结果为: <跨度class="SFnam">
我对此相当陌生,但我有一些基本编码等技能,如果以上内容构建不当,我深表歉意:(。
任何指导/帮助将不胜感激。
干杯 鲍里斯
已编辑: 另外值得注意的是每页底部的监听器脚本(不确定是否有帮助?:
<script>(function(){var i,j,a,x;try{x=localStorage.getItem("SF_nam");}catch(e){x="";}
try{for(a=document.querySelectorAll(".SFnam"),i=a.length-1;i>=0;i--)a[i].innerHTML=x?x:"";}catch(e){}
try{for(a=document.querySelectorAll(".SF_li"),i=a.length-1;i>=0;i--)a[i].style.display=x?"":"none";}catch(e){}
try{for(a=document.querySelectorAll(".SF_lo"),i=a.length-1;i>=0;i--)a[i].style.display=x?"none":"";}catch(e){}})();
</script>
这将根据包含或不包含文本的范围 class 相应地更改元素的文本。
function updateSpan()
{
var spanElm = document.getElementById('myspan');
if(spanElm.innerHTML)
{
document.getElementsByTagName('user')[0].innerHTML = "Logged in as " + spanElm.innerHTML;
}
else
{
document.getElementsByTagName('user')[0].innerHTML = "LOGIN";
}
}
window.addEventListener("DOMContentLoaded", function(event) {
updateSpan();
});
为您的跨度添加一个 ID,以便我们可以找到它
<span style="text-transform:uppercase;"class="SFnam" id='myspan'></span>
用这个更新你的底部脚本
<script>(function(){var i,j,a,x;try{x=localStorage.getItem("SF_nam");}catch(e){x="";}
try{for(a=document.querySelectorAll(".SFnam"),i=a.length-1;i>=0;i--)a[i].innerHTML=x?x:"";}catch(e){}
try{for(a=document.querySelectorAll(".SF_li"),i=a.length-1;i>=0;i--)a[i].style.display=x?"":"none";}catch(e){}
try{for(a=document.querySelectorAll(".SF_lo"),i=a.length-1;i>=0;i--)a[i].style.display=x?"none":"";}catch(e){}
updateSpan()})();
</script>
如果在执行期间发生更改,这将确保函数也会更新。 这是 JSFiddle