这可能是一个非常初学的问题,但是我要拔掉头发,因为我无法弄清楚我做错了什么.此时,我要做的就是让所选文本在警报或控制台中打印(用于测试).我确保已将.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)
我在学.提前致谢.
我正在使用 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
我想将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
我有一个正在运行的 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和==,所以我的问题是,为什么没有这个地方抛出一个错误?什么都没有改变,所以我希望测试能捕捉到这一点,但在单元测试中或当我在浏览器中手动测试时,没有任何失败。