草庐IT

angularjs-watch

全部标签

angularjs - 如何捕捉 Angular 1.x 网站上的出站链接点击?

我正在trycatch指向外部网站的链接点击,以便稍后跟踪它们。类似于foo但跨越所有DOM树。大部分内容来自外部REST服务器,因此我无法使用ng-click那里。谢谢。 最佳答案 你可以做的是写一个名为a的指令angular.module('tracking',[]).directive('a',function(){return{restrict:'E'link:function(scope,element,attrs){element.on('click',function(){if(attrs.target==outsid

javascript - Google 更新和 AngularJS/JavaScript 网站

谷歌今天(2014年5月28日)宣布,JavaScript内容将由谷歌机器人呈现。哇好消息!因此,无需为抓取目的提供一些预呈现的页面。在http://googlewebmastercentral.blogspot.de/2014/05/understanding-web-pages-better.html上阅读更多相关信息可是我高兴得太早了。我关闭了我的预呈现服务,让谷歌使用网站管理员工具抓取我的网站。在查看呈现的HTML代码后,我发现:很明显,Google没有正确呈现ng-view(希望目前)。所以我打开我的预呈现服务并再次抓取网站。这是第二个问题:Google不会自动将URL中的h

angularjs - SEO - 如何要求爬虫在爬行之前等待数据加载?

我正在使用mvvc框架(Angular),但在为站点数据编制索引时遇到了一些问题。所有静态数据都可以正常抓取,但云数据库中的动态数据会丢失。有什么方法可以礼貌地要求爬虫在开始之前等待几百毫秒? 最佳答案 没有办法告诉蜘蛛等待。这会适得其反,因为他们的工作是尽快索引数据,每次等待都会累积成几天/几周/几个月的延迟。(请注意,Google已经探索了一些javascript渲染,但这对XHR内容没有帮助)。正确答案是探索MakingAJAXApplicationsCrawlable.这种方法的要点是您在部署过程中使用prerender.i

javascript - 如何影响 AngularJS 的 HTML 呈现优先级?

我正在通过PhantomJS通过Selenium为搜索引擎机器人预呈现我的HTML页面,以便他们可以看到完全加载的内容。目前,在PhantomJS到达页面后,我等待5秒,以确保所有内容都已加载。与其每次都等待这5秒,我考虑的一种解决方案是等到属性html-ready在上标签设置为真:.......controller("AnyController",function($scope,$rootScope,AnyService){$rootScope.htmlReady=false;AnyService.anyLongAction(function(anyData){$scope.anyD

javascript - SEO 和 AngularJS

我正在使用AngularJS构建一个Web应用程序,我需要对它进行全面的SEO优化。似乎对于少数人来说,谷歌能够抓取Angular应用程序,但不清楚它是否可以读取所有内容(例如,我读到指令无法解释)。那么今天,即使我们使用全套JS函数,angular应用程序是否完全兼容google?其他引擎呢?我们还需要为雅虎或微软生成fantomJS静态代码吗? 最佳答案 截至今天,AngularJS仍未完全针对SEO进行优化。因此,许多开发人员仍然觉得有必要使用像Predender.io这样的服务。或使用PhantomJS编写自己的实现在SEO

javascript - AngularJS 如何拥有网站服务器 SEO 友好页面

您可以在http://docs.angularjs.org/?_escaped_fragment_=/tutorial/step_09查看AngularJS.org为Google机器人和其他抓取工具提供的预呈现内容示例。我很好奇这是如何实现的。他们似乎并没有使用headless浏览器来生成快照,而是在服务器端呈现标记。但我似乎无法在他们网站的Github存储库中找到这是如何实现的:https://github.com/angular/angularjs.org 最佳答案 你可以看看thisarticle解释如何为每个服务器配置启用预

angularjs - 动态内容单页应用SEO

我是SEO的新手,只是想了解它如何为具有动态内容的单页应用程序工作。在我的例子中,我有一个单页应用程序(由AngularJS提供支持,使用路由器来显示不同的状态),它提供了一些基于位置的搜索功能,类似于Zillow,Redfin,或Yelp.在mt站点上,用户可以输入位置名称,站点将根据位置返回一些结果。我正在尝试找出一种方法使其与Google配合良好。例如,如果我在Google中输入“ApartmentSanFrancisco”,结果将是:当用户点击这些链接时,网站将显示正确的结果。我正在考虑为我的网站提供类似的SEO。问题是,页面内容完全取决于用户的查询。用户可以通过城市名称、州名

javascript - 阻止 Google 索引 AngularJS 路由

通常,如果我不想让Google抓取某个页面,我会将该页面添加到我的robots.txt文件中,如下所示:User-agent:*Disallow:/my-page为了防止Google将该页面编入索引,我会将该页面从我的sitemap.xml中删除将以下元标记添加到页面的:现在,如果我使用AngularJS处理单个页面应用程序的所有路由,如何停止Google索引和/或抓取路由?Angular为每条路线在ng-view中带来内容,因此信息在中在每条路线上保持不变。我不认为我可以在这种情况下添加元标记。 最佳答案 如果你的根模块放在标记(

AngularJS SEO 页面 404 header 状态代码

我们在一个使用Symfony2+AngularJS的项目中工作。每个都在不同的域中(Symfony2的api.domain和Angular项目的www.domain)。现在我们专注于SEO部分。我们使用Prerender.io创建静态快照,为爬虫提供良好的HTML原始页面。但问题是在Angular上提供“404页面”时:$urlRouterProvider.otherwise('/404');问题是,我们所做的是将一个不存在的页面重定向到带有200header状态代码的“404页面”,这对于SEO目的非常不利...由于AngularJS无法生成,我们已经尝试了两件事:1。使用htacc

javascript - AngularJS SEO - 一劳永逸

我在一个有15个子站点和13个不同架构页面的大项目中。当前,该站点基于ui.route对于所有页面和我的数据集$httpAngular要求。在搜索控制台上进行测试和试验后,谷歌似乎看不到我的所有页面,除了主页和来自$http的数据。请求不出现。我做错了什么?我目前所做的是:在中设置基本标签:创建.htaccess:RewriteEngineOnOptionsFollowSymLinksRewriteBase/RewriteCond%{REQUEST_FILENAME}!-fRewriteCond%{REQUEST_FILENAME}!-dRewriteRule^(.*)$/#/$1[L