javascript - blaze 中 Template.myTemplate.onRenderd() 中的 window.onSelection()

标签 javascript meteor meteor-blaze

我有一个模板(blogContent.html),它使用(blogContent.js)中的帮助程序加载页面上的文本。页面加载后,我尝试在 blogContent.html 上选择一些文本并突出显示它。

为了获取所选文本,我正在尝试执行类似的操作

Template.blogContent.onRendered(function(){
    if (window.onSelection) {
        var selectedText = window.onSelection().toString();
        console.log(selectedText);
    }
});

但是,我遇到了两个问题。 1. if block 总是在页面加载时执行,而不会在之后执行,即不在我选择某些文本时执行。 2. 由于(1),console.log 仅在页面加载时在客户端控制台输出一次空字符串,之后没有任何反应。

非常感谢任何指点。我是 webdev 和 Meteor 的新手。非常感谢。

最佳答案

window.onSelection 不是有效的函数或属性。您可能正在考虑 window.getSelection()

Meteor 不会重新渲染模板,除非模板内部的数据发生变化,因此 onRendered 函数不会被调用。

这里你想要的是普通的旧式 jQuery ——参见 this question了解如何创建文本选择监听器。

关于javascript - blaze 中 Template.myTemplate.onRenderd() 中的 window.onSelection(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39806064/

相关文章:

javascript - 如何将 <div> 转换为可折叠面板?

javascript - 无法关闭 Genesis 主题中的粘滞消息

javascript - 在 meteor 中读取 shell 命令的输出

javascript - 在 ReactJS 前端中使用 Meteor react 变量

javascript - meteor :强制渲染元素

c# - 基于当前日期和时间的 Div 背景颜色

javascript - 在定义之前读取环境变量

javascript - Meteor - Telescope 如何在不重新渲染的情况下加载更多帖子?

javascript - Meteor:如何获取对象属性的响应式(Reactive)父/子依赖模板

templates - 创建可重用组件的模式