-1

我有一个有趣的问题。我正在运行 Squarespace @ buscadprimero.caminoglobal.org 并且需要定位导航上的右上角按钮(Ingresar,这意味着登录)以调出通过嵌入代码提供给我的 Javascript 表单。当作为代码块包含在页面正文中时,代码本身可以正常工作,但 Squarespace 只允许顶部的导航按钮成为超链接。我无处可向按钮本身添加代码,因为它主要是一个消费者平台,并且非常适合简单的应用程序,直到您尝试更改它的工作方式。

他们通过“代码注入”菜单允许自定义代码,该菜单将您想要的任何代码添加到页面的 HTML 标题中,所以我一直试图定位这个 div,它没有 id 但谁的类是external,用 Javascript 将其内容替换为onclick侦听器以调出此表单。追踪?

这是我的嵌入代码,就像我说的那样很好:

<script>// <![CDATA[
   !function(e,t){e._cc={}, e._cc.host="https://www.coachingcloud.com/";var n=function(){var n=t.createElement("script"),c=t.getElementsByTagName("script")[0];n.src=e._cc.host+"login.min.js",c.parentNode.insertBefore(n,c)};e.addEventListener?e.addEventListener("load",n,!1):e.attachEvent("onload",n)}(window,document);
// ]]></script>

我一直在尝试document.getElementsByClassName("external").innerHTML;,但是当设置为返回的 var 时undefined。Javascript 新手,但不怕学习。首先,我想弄清楚如何正确定位 div,然后用点击时激活的 Javascript 函数替换其内容(当前是指向我的 404 页面的链接)。谢谢指导!

4

2 回答 2

0

感谢@Arg0n 的大力帮助,我现在有了一个有效的登录表单,该表单显示在我网站的右上角。使用:

$(function() { $("#mainNavigation .collection").last().html("<span id='cc-login'>Ingresar</span>"); });

作为替换相关内容的函数div,我插入<span id='cc-login'>Ingresar</span>了对提供的嵌入代码的调用:

<![CDATA[ !function(e,t){e._cc={}, e._cc.host="https://www.coachingcloud.com/";var n=function(){var n=t.createElement("script"),c=t.getElementsByTagName("script")[0];n.src=e._cc.ho‌​st+"login.min.js",c.parentNode.insertBefore(n,c)};e.addEventListener?e.addEventLi‌​stener("load",n,!1):e.attachEvent("onload",n)}(window,document); // ]]>

事实证明,一点 jQuery 有助于访问所需的div.,而设置其html内容有点超出我的专业领域。

非常感谢 StackOverflow 社区帮助我了解使用 Javascript 定位页面元素以程序化操作其内容。

于 2016-07-05T16:03:30.853 回答
0

我已经在您的 Chrome 网站上测试了以下内容,并成功更改了内容。该页面包含多个“.collection”元素,所以我只选择最后一个:

JavaScript / jQuery

$("#mainNavigation .collection").last().html("<a href='/newlink'>Test</a>");
于 2016-06-29T06:10:31.483 回答