首页 文章

Blogger中的跨域导航,无需Javascript

提问于
浏览
0

设置:我将Blogger博客设置为域名blog.mydomain.com . mydomain.com的主站点站点正在运行Umbraco CMS .

问题:我需要以某种方式将CMS导航传输到Blogger,这样在主网站上进行更改不需要额外的步骤来修改Blogger中的导航 .

以任何格式(XML,无序列表,JSON等)在CMS端生成导航数据不是问题 . 问题是在生成后将Umbraco的数据传输到Blogger .

我还不愿意使用Javascript,因为这会严重损害用户在没有Javascript的情况下浏览的网站 . (太糟糕了,因为AJAX是一个非常可行的解决方案 . )

我摒弃了使用iFrame的想法 . 这对于包含子菜单的导航系统有何用处?创建和删除多个iframe是不可能的,因为我不想使用Javascript . 我可以使用一个大的iframe来允许子菜单,但是它会覆盖内容区域顶部的内容,使其无法点击 .

3 回答

  • 1

    我正在考虑如何做到这一点,但是当我这样做时 - 在这个日常的时候,javascript变得非常普遍 . 大多数用户都会拥有它,而那些禁用它的用户实际上不应该在网上 . 这是你不想使用javascript的唯一原因吗?根据YDN,大约2%的人有js残疾,而且这个数字低于其他国家 . 随着时间的推移,2%应该会降低,我不认为这是一个问题 . 但是如果你绝对不能使用javascript,我会继续思考 . 我可能有一个想法,但我需要测试它 .

  • 3

    不可能使用IFrame,原因是同源策略 . 两个站点都在不同的域上,当用户点击IFrame中的菜单项时,无法调用父窗口 .

    如何做到这一点的方法很少 .

    1)Javascript解决方案 . 使用 json rpc 或其他跨域调用 . 从CMS加载菜单并进行渲染 . 是的,这需要javsascript,但是,请认真地向我展示不使用javascript的网站 .

    2)直接服务器通信 . 是否可以从博客执行http调用?如果是这样,只需从Blogger执行对您的CMS的http调用,获取数据并进行渲染 .

    3)混合flash / javascript解决方案 . 无论相同的源策略如何,Flash都可以执行http调用 . 使用flash获取数据,使用 ExternalInterface 调用Javascript函数来呈现数据 .

    没有其他方法可以做到这一点 . 我建议你使用javascript解决方案

  • 1

    您可以在Blogger中构建一个空UL的HTML骨架(您可能需要的最大值)来保存导航内容,然后链接到Umbraco生成的外部样式表 .

    这个样式表可以使用:before和:after伪元素用CSS生成的内容填充那些LI,并使用CSS display:none隐藏未使用的LI .

    一个例子是:http://jsfiddle.net/5bXja/1/

    这适用于IE8,因此取决于您的客户端,这可能或许可能不会比Javascript更广泛支持 . 可能不是 . ;-)

相关问题