小编Bri*_*ian的帖子

window.getSelection返回undefined或null

这可能是一个非常初学的问题,但是我要拔掉头发,因为我无法弄清楚我做错了什么.此时,我要做的就是让所选文本在警报或控制台中打印(用于测试).我确保已将.toString()方法添加到返回的对象中,window.getSelection().无论我做什么,控制台和警报显示为空白.谁有人解释为什么?

我在本地Chrome扩展程序中执行此操作.

的manifest.json

{
    "manifest_version": 2,
    "name":"Testing",
    "version": "0.1",
    "icons": {
       "48":"48.png"
    },

    "background": {
        "scripts": [ "background.js" ]
    },

    "permissions":[ "tabs" ],

    "browser_action": {
        "default_icon": { "19":"img19.png" }
    }
}
Run Code Online (Sandbox Code Playgroud)

JavaScript的

chrome.browserAction.onClicked.addListener(function(tab) {
    var selObj = window.getSelection();
    var selectionText = selObj.toString();
    alert(selectionText);       // displays a blank alert
    console.log(selectionText); // adds a blank line in the console
});
Run Code Online (Sandbox Code Playgroud)

我在学.提前致谢.

javascript google-chrome google-chrome-extension

2
推荐指数
1
解决办法
3350
查看次数

访问团队云端硬盘中的文件和文件夹

我正在使用 Google Apps 脚本和 Drive API V2(我认为 V3 在脚本中尚不可用)来自动在团队云端硬盘内创建文件。我想用脚本添加编辑器,但没有成功。

FolderIterator我可以使用标准方法访问团队云端硬盘和子文件夹DriveApp

尝试1

function addUserToTeam(email, folders) {

  // Open the team drive and get all the folders
  var teamFolders = DriveApp.getFolderById('TEAMDRIVEIDSTRING').getFolders();

  var folders = ["folderIdToMatch"]  // This may hold multiple folders

  try {
  // Loop an array of folder IDs
    for(var i=0; i<folders.length; i++) {

      // Check the team drive folders for a matching name
      while(teamFolders.hasNext()) {
        var teamFolder = teamFolders.next();
        if(folders[i] == teamFolder.getId()) {
          teamFolder.addEditor(email);
        }
      }
    } …
Run Code Online (Sandbox Code Playgroud)

google-apps-script google-drive-api google-drive-shared-drive

2
推荐指数
1
解决办法
3476
查看次数

在网络应用中注册在线服务工作者

我想将Web推送通知添加到由应用脚本托管的Web应用中。为此,我需要注册服务工作者,并且遇到跨域请求错误。原始内容来自,*.googleusercontent.com而脚本URL为script.google.com/*

通过使用通过脚本创建的内联URL上的这篇文章,我能够成功创建内联工作器blob。现在,我陷入了在浏览器中注册工作人员的问题。

以下模型适用:

的HTML

<!-- Display the worker status -->
<div id="log"></log>
Run Code Online (Sandbox Code Playgroud)

服务人员

<script id="worker" type="javascript/worker">
  self.onmessage = function(e) {
    self.postMessage('msg from worker');
  };
  console.log('[Service Worker] Process started');

  })
</script> 
Run Code Online (Sandbox Code Playgroud)

内联安装

<script>
  function log(msg) {
    var fragment = document.createDocumentFragment();
    fragment.appendChild(document.createTextNode(msg));
    fragment.appendChild(document.createElement('br'));

    document.querySelector("#log").appendChild(fragment);
  }

  // Create the object with the script
  var blob = new Blob([ document.querySelector("#worker").textContent ]);

  // assign a absolute URL to the obejct for hosting
  var worker = new Worker(window.URL.createObjectURL(blob)); …
Run Code Online (Sandbox Code Playgroud)

javascript google-apps-script web-notifications service-worker

1
推荐指数
1
解决办法
1422
查看次数

Python本地和生产中`is`和`==`的不同行为

我有一个正在运行的 Flask 应用程序,它一直在生产中产生一个奇怪的错误。对于路由,在返回结果之前,我会根据请求的资源检查用户的角色及其 ID。

在本地,我有以下行可以在开发服务器上运行并通过测试:

# user_id is a param passed to the Flask route
if current_user.usertype_id == 1 or current_user.id is user_id:
    # do something
else:
    abort(401)
Run Code Online (Sandbox Code Playgroud)

在生产中,即使用户已登录,每次都会抛出 401 错误。因此,我将其更改为仅检查相等性:

# user_id is a param passed to the Flask route
if current_user.usertype_id == 1 or current_user.id == user_id:
    # do something
else:
    abort(401)
Run Code Online (Sandbox Code Playgroud)

...这解决了未经授权的错误。

我明白之间的差别is==,所以我的问题是,为什么没有这个地方抛出一个错误?什么都没有改变,所以我希望测试能捕捉到这一点,但在单元测试中或当我在浏览器中手动测试时,没有任何失败。

python

0
推荐指数
1
解决办法
39
查看次数