-1

我正在使用一个 Web 应用程序 (Sharepoint),我需要对其进行一些调整。该应用程序本身非常强大,但某些领域有局限性。例如,在这种情况下,我试图为照片创建一个 onlick 事件。由于限制,我无法做到这一点。(如果您知道共享点,您就知道 wiki 页面限制)因此,我的目标是在页面(支持)上实际实现 javascript,该页面将定位图像并插入 onclick 事件。

我遇到的问题是我什至无法进行简单的搜索和替换工作。大多数示例似乎指的是文本节点,但我不熟悉该术语。

我正在寻找一些指导。谢谢!


(这不是答案,但评论太短了)我正在尝试解决几个问题。这是其中之一。我在一个站点中有一个文档库,它嵌入在另一个站点中。当用户单击文档时,它会在文档库的非常小的窗口中呈现文档。我想要完成的一件事是在 URL 中添加一个“target=_blank”以在一个全新的浏览器窗口中打开。不幸的是,这个文档列表是动态的,所以它必须在运行中完成。如前所述,第二个挑战是图像。在这种情况下,有一个很小的选择器箭头,可以将数据刷新到另一个 Web 部件中。虽然这可行,但单击图像会更方便。同样,内容是动态的,在这种情况下,我需要从箭头读取 URL,并动态将图像更改为可点击。这可能超出了我的能力范围,因为我不擅长 Web 开发实践。我更像是一个编译器类型的人。;) 我没有提供任何代码示例,因为我尝试过的一切都只是概念证明。我将通过一些建议再看一下。谢谢。

4

2 回答 2

1

不确定您为什么要尝试使用 JavaScript 编辑 HTML 以添加事件处理程序。这通常不是您希望与 DOM 交互以添加事件处理程序的方式。

最简单的事情是使用jQuery并使用它与适当的选择器找到元素并添加事件处理程序。我以前在 SharePoint 项目上使用过这个,没有任何问题。

沿着这条线的东西将是一个开始的地方(尽管选择器会导致 DOM 中所有 img 标签的点击事件处理程序)。

$('img').click(function(){/你的代码在这里点击/});

于 2013-03-26T19:54:22.170 回答
0

如果你想避免使用 jQuery,这样的事情可能会很好用:

function search(scope, tagName, attr, query) {
    tagName = scope.getElementsByTagName(tagName);
    var size = tagName.length;
    var results = new Array();
    for (var i = 0; i < size; i++) {
        if (tagName[i].getAttribute(attr) == query)
            results.push(tagName[i]);
    }
    return results;
};

上面的函数对传递给它的任何范围进行跨浏览器查询。因此,如果我们希望搜索文档中所有具有“可点击”类的图像,我们可以执行以下操作:

var images = search(document, 'img', 'className', 'Clickable');
for (var i = 0; i < images.length; i++) {
    images[i].onclick = onClickFunction; // onClickFunction being whatever you write.
}
于 2013-03-26T20:55:53.337 回答