2014-10-02 66 views
1

我一直在關注Shopify Resources上的提示,要求我的訪問者根據歐盟cookie法律允許使用cookie。將變量傳遞到符合W3C的外部js文件

的編碼工作,但是當我通過W3C Markup Validation Service提供的編碼它與下面的錯誤

錯誤行25列139出現:屬性READ_MORE不允許的元素 腳本在這一點上。 ... -cookie /要求-OPT-in.js」 READ_MORE = 「DOC/website_privacy_policy.pdf」>

我的編碼是

<link rel="stylesheet" type="text/css" href="http://www.heartinternet.co.uk/eu-cookie/main.css"/> 
<script type="text/javascript" src="http://www.heartinternet.co.uk/eu-cookie/support-opt-in.js"></script> 
<script type="text/javascript" src="http://www.heartinternet.co.uk/eu-cookie/require-opt-in.js" read_more="doc/website_privacy_policy.pdf"></script> 

我試圖移動READ_MORE屬性<script>標籤之外通過將其更改爲

<script type="text/javascript" src="http://www.heartinternet.co.uk/eu-cookie/require-opt-in.js">read_more="doc/website_privacy_policy.pdf";</script> 

這並沒有工作,因爲它並沒有顯示「閱讀更多」在彈出的鏈接。我也試圖把它變成一個獨立的<script>塊,改變編碼以

<link rel="stylesheet" type="text/css" href="http://www.heartinternet.co.uk/eu-cookie/main.css"/> 
<script type="text/javascript" src="http://www.heartinternet.co.uk/eu-cookie/support-opt-in.js"></script> 
<script type="text/javascript">read_more="doc/website_privacy_policy.pdf";</script> 
<script type="text/javascript" src="http://www.heartinternet.co.uk/eu-cookie/require-opt-in.js"></script> 

但這也沒有工作。再次顯示「閱讀更多」鏈接。

有沒有辦法將read_more變量傳遞到require-opt-in.js文件中並符合W3C標記?

回答

1

他們似乎沒有給你另一個選項來傳遞網址。您可以手動設置更改鏈接,更改最後一個腳本塊(這是啓動窗口小部件的那個塊),並自己寫一個。例如:

<script type="text/javascript"> 
    "use strict"; 
    var showSplash = function(){ 
     HI.optInCookies.readMoreURL = "doc/website_privacy_policy.pdf"; 
     HI.optInCookies.showSplash(); 
    }; 
    if(document.body) { 
     showSplash(); 
    } else { 
     setTimeout(showSplash, 100); 
    } 
</script> 

如果他們改變他們的API它會打破,但我沒有看到其他的選擇,因爲他們對搜索更多URL編碼看着腳本塊名爲「READ_MORE」屬性。 您可以更改上面的代碼,以最適合您的方式傳遞閱讀更多網址。

你也可以在this fiddle試試。

0

你可以用JavaScript插入腳本:

var script = document.createElement("script"); 
script.setAttribute("type", "text/javascript"); 
script.setAttribute("src", "http://www.heartinternet.co.uk/eu-cookie/support-opt-in.js"); 
script.setAttribute("read_more", "doc/website_privacy_policy.pdf"); 
document.getElementsByTagName("head")[0].appendChild(script); 

所以W3C驗證服務不對其進行檢測。