[100分] JS 修改 添加的meta标签 在网页上无法显示出来!

zjx198934 2010-12-29 02:32:47
如题 是怎么回事了! 通过JS又可以获取到添加的META!
...全文
798 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjx198934 2010-12-29
  • 打赏
  • 举报
回复
谢谢大家 结贴!
foolbirdflyfirst 2010-12-29
  • 打赏
  • 举报
回复
嗯,ls说得对,http返回和浏览器动作,lz得分清楚
爬虫还没有强大到获取页面内容后运行js,执行dom回流再解析的程度。
crackpot2007 2010-12-29
  • 打赏
  • 举报
回复
如果你想做SEO,那以后就别考虑试图用JS的方法去修改客户端的HTML,爬虫没有你想象中那么强大。
再者,建议你好好理解服务器端跟客户端到底是怎么回事,你的HTML静态网页是怎么来的,手写?后台模板构成?不管哪一种,你都可以从根本上解决增加META标签的问题。
Mr-Jee 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 zjx198934 的回复:]

引用 14 楼 cj205 的回复:
你用js修改的文本 搜索引擎是不予以理会的
所以如果你为了SEO的话 还是在后台修改~

后台修改?如果是HTML格式的话 如何修改?
[/Quote]那就手动改 如果是生成HTML的话 那就在生成的时候改啊
zjx198934 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 cj205 的回复:]
你用js修改的文本 搜索引擎是不予以理会的
所以如果你为了SEO的话 还是在后台修改~
[/Quote]
后台修改?如果是HTML格式的话 如何修改?
Mr-Jee 2010-12-29
  • 打赏
  • 举报
回复
你用js修改的文本 搜索引擎是不予以理会的
所以如果你为了SEO的话 还是在后台修改~
zjx198934 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 crackpot2007 的回复:]
引用 10 楼 zjx198934 的回复:
可能是我表达的问题! 我的目地是用JS添加新的META标签 也就是当请求页面到客户端时会调用一段JS添加一个新的META标签 但是我在客户端鼠标右键点击网页查看源文件时确没有看到新加的那个META标签 而却可以通过document.getElementByTagName获得我添加的META标签 这是为什么? 还是说我的JS那样写不对!


网页……
[/Quote]
懂你的意思了! 那我做SEO 伪静态页面中META会根据参数不同而改变 那我用JS这样改 不是不能被爬虫爬到? 就拿我现在发帖子的这张网页来说吧! 看它的源文件又能看到这张动态页新增的META标签 这是怎么实现的呢?
crackpot2007 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 zjx198934 的回复:]
可能是我表达的问题! 我的目地是用JS添加新的META标签 也就是当请求页面到客户端时会调用一段JS添加一个新的META标签 但是我在客户端鼠标右键点击网页查看源文件时确没有看到新加的那个META标签 而却可以通过document.getElementByTagName获得我添加的META标签 这是为什么? 还是说我的JS那样写不对!
[/Quote]

网页源文件是由客户端请求URL后,服务器端输出到客户端的HTML代码,JS在客户端进行innerHTML,innerText,appendChild等等等等操作,均缓存在客户端,不会修改源文件的代码。



你的意思我明白,问题是你没听懂我的。
你的JS没错。
源文件是你请求网页后,服务器端输出到客户端的代码,即使你用JS给它添加了节点,源文件还是首次加载到客户端的源文件,但你用JS获取,是可以取到的。
zjx198934 2010-12-29
  • 打赏
  • 举报
回复
在先急等! 有经验的兄弟 麻烦知道下! 谢谢了!
zjx198934 2010-12-29
  • 打赏
  • 举报
回复
可能是我表达的问题! 我的目地是用JS添加新的META标签 也就是当请求页面到客户端时会调用一段JS添加一个新的META标签 但是我在客户端鼠标右键点击网页查看源文件时确没有看到新加的那个META标签 而却可以通过document.getElementByTagName获得我添加的META标签 这是为什么? 还是说我的JS那样写不对!
yhtapmys 2010-12-29
  • 打赏
  • 举报
回复

我认为这个没有办法修改之,因为 http header 是在JS代码加载之前就被浏览器加载的,我们没有办法通过果来改因.
crackpot2007 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zjx198934 的回复:]
引用 4 楼 crackpot2007 的回复:
在网页上无法显示出来?

什么意思?

查看网页源文件里面的META标签!
[/Quote]

网页源文件是由客户端请求URL后,服务器端输出到客户端的HTML代码,JS在客户端进行innerHTML,innerText,appendChild等等等等操作,均缓存在客户端,不会修改源文件的代码。
zjx198934 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cj205 的回复:]
node呢
[/Quote]
查看源文件时 如果添加新的标签就看不到meta节点 如果修改以前的看到的也是页面原有的META标签
但是alert出节点的属性的时候又是修改后的! 不知道什么原因!
Mr-Jee 2010-12-29
  • 打赏
  • 举报
回复
node呢
zjx198934 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 crackpot2007 的回复:]
在网页上无法显示出来?

什么意思?
[/Quote]
查看网页源文件里面的META标签!
crackpot2007 2010-12-29
  • 打赏
  • 举报
回复
在网页上无法显示出来?

什么意思?
zjx198934 2010-12-29
  • 打赏
  • 举报
回复
meta[0].setAttribute('content','new test');用了后 页面上看没有修改! 但是ALERT出来确实已经修改!
zjx198934 2010-12-29
  • 打赏
  • 举报
回复

var ms=document.getElementsByTagName('meta');

var p=ms[0].parentNode;
var m =document.createElement('meta');
m.content=node.Name+','+node.Name;
m.name='Keywords';
p.appendChild(m);
Mr-Jee 2010-12-29
  • 打赏
  • 举报
回复
你怎么写的

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧