Javascript真的不是我的强项,所以只是寻求一些帮助来解决这个问题。
我需要使用针对IE& amp;的平滑滚动脚本。铬。我知道现在进行UserAgent检查几乎是徒劳的,我的需求不适合做浏览器功能检测的模式。我也不能用条件评论来定位IE gte 10,所以我还是试图做一些浏览器黑客攻击。
我发现browserhacks.com资源提供了针对特定版本或浏览器版本范围的变量,因此我可以创建应用于这些浏览器的一揽子逻辑。
所以在当下,我正在使用这些:
适用于Chrome
var isChrome = !!window.chrome && !!window.chrome.webstore;
对于IE
var isIE = document.all && window.XMLHttpRequest;
var isIE = document.body.style.msTouchAction !== undefined;
我假设我需要创建一个“IF”“OR”语句来涵盖所有这些,然后参与:
document.write('<script src="js/smooth-scrolling.js"><\/script>');
这就是我所拥有的:
<script type="text/javascript">
var isChrome = !!window.chrome && !!window.chrome.webstore;
var isIE = document.all && window.XMLHttpRequest;
var isIE = document.body.style.msTouchAction !== undefined;
document.write('<script src="js/smooth-scrolling.js"><\/script>');
</script>
这适用于将平滑滚动应用于IE&amp; Chrome,但它也将它应用于Firefox,我不希望这样,因为Firefox已经有非常流畅的原生滚动,并且该脚本实际上会降低Firefox中的滚动性能。
然后我尝试了(我确定无力的尝试):
<script type="text/javascript">
if (var isChrome = !!window.chrome && !!window.chrome.webstore) {
document.write('<script src="js/smooth-scrolling.js"><\/script>')
}
if (var isIE = document.all && window.XMLHttpRequest) {
document.write('<script src="js/smooth-scrolling.js"><\/script>')
}
if (var isIE = document.body.style.msTouchAction !== undefined) {
document.write('<script src="js/smooth-scrolling.js"><\/script>')
}
</script>
......那就是打破一切。只是试图让脚本在不打击每个浏览器的情况下进行操作。
答案 0 :(得分:1)
不要使用document.write();您必须创建一个新的脚本元素并将其添加到DOM中。
var isChrome = !!window.chrome && !!window.chrome.webstore;
if(isChrome){
var s=document.createElement('script');
s.src='source_to-Your_JS.js';
document.head.appendChild(s);
}