在正则表达式模式匹配url(Blogger)上运行javascript
问题描述:
我试图在几个页面上加载一个javascript,但我只在与特定模式匹配的网页上。在正则表达式模式匹配url(Blogger)上运行javascript
下面的代码适用于特定页面,但它不接受
<b:if cond='data:blog.url == "https://mywebsite.com/yyyy/mm/article.html"'>
<script src='https://javascritp.js'/>
</b:if>
我发现的最接近的是描述here但因为我的网站Blogger上运行,我不知道如何任何通配符或正则表达式使用该代码。
有什么建议或帮助吗?
答
Blogger条件语句不提供模式匹配功能。这将是更容易实现你通过JavaScript直接在博客模板需要什么 -
一个例子代码是这样 -
if(window.location.href.match(/Regex-Condition/){
var script = document.createElement('script'); script.type = 'text/javascript';
script.src = 'URL-Of-The-Script-You-Want-To-Load';script.async=true;
var insertScript = document.getElementsByTagName('script')[0]; insertScript.parentNode.insertBefore(script, insertScript);
}
除此之外,你还可以看看Lambda表达式(请参阅到How to use Google Blogger Lambda Operators)
答
嗨,谢谢你的反馈!当我等待一些回复时,我意识到我必须像你说的那样使用JavaScript。
我在测试这个代码,但它看起来是错误的:
<script type='text/javascript'>
var pattern = new RegExp('mywebsite\.com\/(200[8-9]|201[0-6])\/');
if (pattern.test(document.location.href)) {
}
</script>
我有两个主要的担忧:
- 如果正则表达式是正确的
- 我有括号之间执行一些包含Blogger条件语句,div和普通JavaScript的代码。这段代码是否需要特别注意?
谢谢