【问题标题】:window.onSelection() in Template.myTemplate.onRenderd() in blaze火焰中的 Template.myTemplate.onRenderd() 中的 window.onSelection()
【发布时间】:2016-10-03 15:51:04
【问题描述】:

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

为了获得选定的文本,我正在尝试做这样的事情

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

但是,我遇到了两个问题。 1. if 块总是在页面加载时执行,之后永远不会执行,即不是当我选择一些文本时。 2.由于(1),console.log在页面加载时只在客户端控制台输出一次空字符串,之后什么也没有发生。

非常感谢任何指针。我是 webdev 和流星的新手。非常感谢。

【问题讨论】:

    标签: javascript meteor meteor-blaze


    【解决方案1】:

    window.onSelection 不是有效的函数或属性。你可能会想到window.getSelection()。

    除非其中的数据发生变化,否则 Meteor 不会重新渲染模板,因此不会调用 onRendered 函数。

    你想要的是普通的旧 jQuery -- 请参阅 this question 了解如何为文本选择创建侦听器。

    【讨论】:

    • 这正是我最终所做的。感谢您的解释。我现在在特定类元素的 mouseup 事件中使用 rangy。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-16
    • 2011-05-25
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    相关资源
    最近更新 更多