我正在构建一个Squarespace页面,我想在页面上有一个外向链接,其查询参数是根据页面本身的查询参数设置的。由于Squarespace会自动在每个站点中嵌入YUI3,我正在尝试使用它(尽管我对jquery有更多的经验)。
示例:页面加载为http://example.com/page/?email=foo@bar.com
。我在页面上有一个指向http://another.example.com/page
的链接,应该修改该链接以转到http://another.example.com/page?address=foo@bar.com
。
以下代码完全符合我在浏览器控制台中粘贴时所需的内容:
var MyButton = Y.all('a[href="http://another.example.com/page"]');
var QueryString = Y.QueryString.parse(window.location.search.substring(1));
MyButton.setAttribute('href','http://another.example.com/page?address=' + QueryString.email);
但是,当我将该代码放入页面源代码时,当页面加载时,控制台中会出现以下错误:Uncaught TypeError: Y.QueryString.parse is not a function
我目前的理论是YUI3以异步方式加载,并且此代码在Y.all可用但Y.QueryString.parse不是......的情况下运行,是吗?什么是最好的解决方案?
答案 0 :(得分:0)
Yui3确实围绕asychonous模块加载,在这种情况下你错过了querystring
模块。
您需要使用Y.use调用包装代码:
Y.use('querystring', function(Y) {
var MyButton = Y.all('a[href="http://another.example.com/page"]');
var QueryString = Y.QueryString.parse(window.location.search.substring(1));
MyButton.setAttribute('href', 'http://another.example.com/page?address=' + QueryString.email);
});