2014-10-02 44 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验证服务不对其进行检测。

相关问题