簡體   English   中英

如何使用JavaScript刪除Mobile Safari的JS文件?

[英]How do I remove a JS file for Mobile Safari using Javascript?

我網站上的Javascript文件之一正在破壞iPad(Mobile Safari)上的顯示。 我只想在iPad上刪除文件,並將其提供給其他所有瀏覽器。

我有以下javascript:

<script type="text/javascript">
<![CDATA[
function removejscssfile(filename, filetype){
 var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none" //determine element type to create nodelist from
 var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none" //determine corresponding attribute to test for
 var allsuspects=document.getElementsByTagName(targetelement)
 for (var i=allsuspects.length; i>=0; i--){ //search backwards within nodelist for matching elements to remove
  if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-1)
   allsuspects[i].parentNode.removeChild(allsuspects[i]) //remove element by calling parentNode.removeChild()
 }
}

if((navigator.userAgent.match(/iPad/i)) 
{
  removejscssfile("somescript.js", "js") //remove all occurences of "somescript.js" on page for ipad 
}
]]
</script>

首先-以上Javascript有效嗎? (我的知識有限)

其次-這是最好的方法嗎?

如果您不使用php或其他更容易使用的東西,則應該使用另一種方法,如果瀏覽器不是ipad,則有條件地將文件加載到文檔的開頭。

    function loadjscssfile(filename, filetype) {
            if (filetype == "js") { //if filename is a external JavaScript file

                var fileref = document.createElement('script')
                fileref.setAttribute("type", "text/javascript")
                fileref.setAttribute("src", filename)

            }
            else if (filetype == "css") { //if filename is an external CSS file
                var fileref = document.createElement("link")
                fileref.setAttribute("rel", "stylesheet")
                fileref.setAttribute("type", "text/css")
                fileref.setAttribute("href", filename)
            }
            if (typeof fileref != "undefined")
                document.getElementsByTagName("head")[0].appendChild(fileref)
    }

    var isiPad = navigator.userAgent.match(/iPad/i) != null;

    if (!isiPad) {
        //load js OR css files
    }

我通過找到有問題的JS函數並添加以下內容來解決此問題:

&& navigator.userAgent.match(/ipad/i) == null

簡單就是好

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM