Pinterest board 仅适用于页面重新加载
Pinterest board only works on page reload
我有一个 AngularJS 应用程序,它是一个单页应用程序。在每个单独的页面上加载 Pinterest 板,这是通过 Pinterest 的小部件生成器完成的:
它给了我以下内容来坚持我的应用程序:
<a data-pin-do="embedBoard" data-pin-board-width="400" data-pin-scale-height="240" data-pin-scale-width="80" href="https://www.pinterest.com/pinterest/pinstudio/"></a>
和:
<script async defer src="//assets.pinterest.com/js/pinit.js"></script>
我添加了这个并加载了 Pinterest 看板,但是当转到另一个页面时,Pinterest 看板不会在没有页面刷新的情况下加载,我认为这是因为脚本无法重新生成/或加载页面上的特定元素,它只是不知道它在那里。
所以我在顶级控制器的 Angular Js 应用程序中使用了以下内容:(从 here 获得)
$scope.loadScript = function(url, type, charset) {
if (type===undefined) type = 'text/javascript';
if (url) {
var script = document.querySelector("script[src*='"+url+"']");
if (!script) {
var heads = document.getElementsByTagName("head");
if (heads && heads.length) {
var head = heads[0];
if (head) {
script = document.createElement('script');
script.setAttribute('src', url);
script.setAttribute('type', type);
if (charset) script.setAttribute('charset', charset);
head.appendChild(script);
}
}
}
return script;
}
};
然后我将以下内容插入我的子控制器以加载脚本:
$scope.$parent.loadScript('//assets.pinterest.com/js/pinit.js');
这工作正常并将我的脚本添加到页面,但是 pinterest 板在刷新之前不会加载,我没有想法,我似乎无法找出为什么脚本在页面之前不会加载元素刷新了。
任何帮助都会很棒。
这 可能 因为加载脚本时 embedBoard
元素不存在。
在类似的情况下,为了在 Angular 应用程序上制作 Pin 按钮,我们使用了 PinUtils.pinAny();
板子的话,可以试试angular-pinterest。
我有一个 AngularJS 应用程序,它是一个单页应用程序。在每个单独的页面上加载 Pinterest 板,这是通过 Pinterest 的小部件生成器完成的:
它给了我以下内容来坚持我的应用程序:
<a data-pin-do="embedBoard" data-pin-board-width="400" data-pin-scale-height="240" data-pin-scale-width="80" href="https://www.pinterest.com/pinterest/pinstudio/"></a>
和:
<script async defer src="//assets.pinterest.com/js/pinit.js"></script>
我添加了这个并加载了 Pinterest 看板,但是当转到另一个页面时,Pinterest 看板不会在没有页面刷新的情况下加载,我认为这是因为脚本无法重新生成/或加载页面上的特定元素,它只是不知道它在那里。
所以我在顶级控制器的 Angular Js 应用程序中使用了以下内容:(从 here 获得)
$scope.loadScript = function(url, type, charset) {
if (type===undefined) type = 'text/javascript';
if (url) {
var script = document.querySelector("script[src*='"+url+"']");
if (!script) {
var heads = document.getElementsByTagName("head");
if (heads && heads.length) {
var head = heads[0];
if (head) {
script = document.createElement('script');
script.setAttribute('src', url);
script.setAttribute('type', type);
if (charset) script.setAttribute('charset', charset);
head.appendChild(script);
}
}
}
return script;
}
};
然后我将以下内容插入我的子控制器以加载脚本:
$scope.$parent.loadScript('//assets.pinterest.com/js/pinit.js');
这工作正常并将我的脚本添加到页面,但是 pinterest 板在刷新之前不会加载,我没有想法,我似乎无法找出为什么脚本在页面之前不会加载元素刷新了。
任何帮助都会很棒。
这 可能 因为加载脚本时 embedBoard
元素不存在。
在类似的情况下,为了在 Angular 应用程序上制作 Pin 按钮,我们使用了 PinUtils.pinAny();
板子的话,可以试试angular-pinterest。