如何在Blogger脚本的URL中使用变量切换多个外部feed资源
解决方案
你之前的写法失效是两个核心问题导致的:
expr:前缀的属性是Blogger服务端渲染阶段执行的表达式,内部的字符串引号不需要转义为HTML实体",转义后会破坏表达式语法,无法正常拼接字符串。- 如果你使用的
variable是前端运行时定义的JavaScript变量,服务端渲染的模板表达式无法读取前端变量,需要换用前端动态加载脚本的方案。
场景1:变量是Blogger模板内置变量/服务端可获取的变量
直接修正expr表达式的引号写法即可,不需要额外转义:
<script expr:src='"https://example.com/feed" + 你的变量名 + ".js"'/>
示例:如果你的变量是固定值2,直接写为
<script expr:src='"https://example.com/feed" + 2 + ".js"'/>
渲染后会自动生成正确的地址:<script src="https://example.com/feed2.js"></script>
场景2:变量是前端运行时的JavaScript变量(比如根据用户行为/随机数切换feed)
不能使用expr:属性,需要通过JS动态创建script标签加载资源:
// 自定义1-4的变量,这里示例为随机生成1-4的数值 const feedVersion = Math.floor(Math.random() * 4) + 1; // 动态创建脚本标签 const feedScript = document.createElement('script'); feedScript.src = `https://example.com/feed${feedVersion}.js`; // 插入到页面中执行 document.head.appendChild(feedScript);
把上面这段JS代码放到页面模板的</head>标签之前即可,不需要再单独写静态的script引用标签。
内容的提问来源于stack exchange,提问作者unknown
相关产品推荐
相关产品推荐

