如果未在用户的浏览器上启用JavaScript,是否可以替换带有HTML的JavaScript?
我知道我可以使用<noscript>this displays in place of javascript</noscript>
工作正常,但它仍然运行javascript。
理论上我想要这个:
如果启用了javascript 运行javascript
如果未启用javascript 不要运行javascript并提供替代方法
我正在使用这个jQuery插件:http://malsup.com/jquery/cycle/int2.html
当我在safari上禁用javascript时,它会显示所有三个项目,都在div中。该插件在每个项目中淡入淡出,但如果禁用它,则会连续显示所有这三个项目,而不会像启用javascript一样淡入淡出。
禁用javascript后,我想阻止它同时显示所有三个项目。我会告诉你看起来是什么样的,以及它在JavaScript被禁用时的作用。
已禁用的视图:http://i42.tinypic.com/212y1j6.png(请注意它们3彼此堆叠在一起) - 我希望阻止JavaScript被禁用
已启用视图:http://i39.tinypic.com/9gwu3d.png
以下是项目所在div的代码:
$(document).ready(function() {
$('#featured-programs-left').cycle({
fx: 'fade',
speed: 'slow',
timeout: 15000,
next: '#next2',
prev: '#prev2'
});
});
<div id="featured-programs-left">
<div>
<a href="http://site.com/academics/majors/emergency_medical_technician_-_paramedic/" title="Emergency Medical Technician - Paramedic"><img src="http://site.com/images/uploads/images/emt.jpg" alt="Emergency Medical Technician - Paramedic" /></a>
<strong>Emergency Medical Technician - Paramedic</strong>
<p>This unique A.A.S. degree program, a partnership between College and Faxton-St. Luke’s Healthcare provides the paramedic student the education necessary to function in an</p>
<p><a href="http://site.com/academics/majors/emergency_medical_technician_-_paramedic/" title="Learn more about Emergency Medical Technician - Paramedic">Learn more</a></p>
</div>
<div>
<a href="http://site.com/academics/majors/travel_tourism_hospitality_events_management/" title="Travel & Tourism: Hospitality & Events Management"><img src="http://site.com/images/uploads/images/hospitality_event_planning.jpg" alt="Travel & Tourism: Hospitality & Events Management" /></a>
<strong>Travel & Tourism: Hospitality & Events Management</strong>
<p>This program prepares students for exciting careers in the travel and tourism industry and the hospitality and events planning field. Graduates are prepared to:<br</p>
<p><a href="http://site.com/academics/majors/travel_tourism_hospitality_events_management/" title="Learn more about Travel & Tourism: Hospitality & Events Management">Learn more</a></p>
</div>
<div>
<a href="http://site.com/academics/majors/fashion_buying_merchandising/" title="Fashion Buying & Merchandising"><img src="http://site.com/images/uploads/images/fashion_merchandising.jpg" alt="Fashion Buying & Merchandising" /></a>
<strong>Fashion Buying & Merchandising</strong>
<p>This program prepares graduates for careers throughout the Fashion Industry including positions in buying, fashion merchandising, retail and wholesale sales, retail</p>
<p><a href="http://site.com/academics/majors/fashion_buying_merchandising/" title="Learn more about Fashion Buying & Merchandising">Learn more</a></p>
</div>
</div>
div的CSS
#featured-programs-left img,
#featured-programs-right img{
xfloat:left;
overflow:auto;
xclear:left;
xwidth:351px;
xpadding:0 5px 5px 0;
border:0;
}
#featured-programs-left,
#featured-programs-right {
height:625px;
float:left;
overflow:auto;
clear:left;
clear:right;
width:100%;
xborder:2px solid red;
}
#featured-programs-left div,
#featured-programs-right div {
xborder:1px solid purple;
overflow:auto;
clear:left;
clear:right;
width:352px;
height:345px;
}
#featured-programs-left {
float:left;
}
答案 0 :(得分:3)
使用<noscript>
的替代方法是在页面加载后立即使用JavaScript隐藏某个元素。如果禁用JavaScript,则元素将保持显示状态。如果启用了JavaScript,则将执行您的脚本并隐藏该元素。
window.onload = function () {
document.getElementById("no_script").style.display = "none";
}
<div id="no_script">
You don't have JavaScript enabled.
</div>
如果你想做相反的事情(在启用JavaScript时显示一些HTML),你总是可以使用各种方法将新元素注入到DOM树中。这是一个:
$(document).ready(function() {
$('#container').html($('#content').html());
});
<div id="container"></div>
<script type="text/html" id="content">
<div>Your <em>HTML</em> goes here</div>
</script>
向John Resig致敬<script type="text/html">
,以便在HTML中不引人注意地隐藏HTML模板。浏览器显然不会执行或呈现非常规类型的<script>
内容。
答案 1 :(得分:3)
有点像Ates's solution,您可以使用Javascript更改启用它的用户的内容。例如,假设您有一个花哨的菜单,为Javascript用户提供超级简单的导航,但对非JS用户来说却毫无价值。在HTML中将display属性设置为'none',然后使用JS启用它。在您的情况下,如果您有不希望为非JS用户显示的内容,则可以默认隐藏它。缺点是如果浏览器关闭JS和CSS,这将无法正常工作。如果您对此感到担心,可以使用JS插入内容。
<html>
<head>
<script>
$(document).ready(function() {
$('.jsok').show();
});
</script>
<style>
.jsok { display: none; }
</style>
</head>
<body>
<div class="jsok"><!-- content for JS users here--></div>
<div><!-- content for everyone here --></div>
<noscript><!-- content for non-js users here --></noscript>
</body>
</html>
答案 2 :(得分:2)
如果启用了脚本,它将运行脚本。如果你想要暂存&lt; noscript&gt;行为,在浏览器中禁用JavaScript并试用。