Twitter Web意图提供方便的JS lib,允许用户从外部网站发送推文.
<script type="text/javascript" src="//platform.twitter.com/widgets.js"></script>
<p><a href="https://twitter.com/intent/tweet?text=textToTweet">link</a></p>
Run Code Online (Sandbox Code Playgroud)
这通过Twitter的textarea打开一个新窗口供用户提交其推文,在移动浏览器上运行良好.一旦Twitter发布,弹出窗口关闭,用户返回原始页面.
然而,在使用webview的本机应用程序(一个很好的例子是facebook webview)的上下文中,流程似乎被打破了.它不是打开弹出窗口或新窗口,而是将当前webview重定向到twitter页面.从那里用户无法返回原始页面.
是否有任何参数可以传递给 https://twitter.com/intent/tweet,以便Twitter在发送或取消后重定向回用户页面.我也尝试过使用twitter @anywhere,但推文框甚至都没有显示在iOS UIWebview上.
是否有客户端流量的替代方案?
谢谢
-seb
我知道这个话题已经有很多主题,但不幸的是我直到现在才找到答案.我使用angular.js和http://angular-js.in/image-upload/中的示例代码从客户端获取图像.这部分有效
现在到node/mongodb部分,这是我的后端模型:
var userSchema = new mongoose.Schema({
avatar: { data: Buffer, contentType: String },
// ...
});
module.exports = mongoose.model('User', userSchema);
Run Code Online (Sandbox Code Playgroud)
和我的节点代码:
exports.createAvatar = function (req, res) {
var avatar = {
data: req.body.data.image, // see below
contentType: 'image/png'
}
models.DUser
.findById(index.findUserId(req))
.exec(function (err, user) {
user.avatar = avatar;
// ...
user.save(function (err, user) {/* ... */ });
Run Code Online (Sandbox Code Playgroud)
和我的angularCtrl:
var foo = {
image: image,
imageName: image.name,
};
$http.post('/api/users', {data: foo })
.success(function (result) { /*...*/ });
Run Code Online (Sandbox Code Playgroud)
除了req.body.data.image,我尝试了许多不同的变体,如req.body.data.image.dataURL,req.body.data.image.dataURL.data,但到目前为止没有任何工作.我对req.body.data.image的记录显示: …
((JavascriptExecutor) driver).executeScript("arguments[0].click();", buttonToClick);
Run Code Online (Sandbox Code Playgroud)
^域名故意编辑.
根据无法找到变量 - PhantomJS这个错误与没有正确执行Javascript的执行有关.我不明白这在我的Java程序的上下文中意味着什么.
我的Selenium程序只有一种Javascript调用,它的工作原理如下:
String[] cli_args = new String[]{"--debug=false", "--web-security=false", "--ssl-protocol=any", "--ignore-ssl-errors=true"};
DesiredCapabilities caps = DesiredCapabilities.phantomjs();
caps.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, cli_args);
caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "/Users/richard/Downloads/phantomjs-2.0.0-macosx/bin/phantomjs");
driver = new PhantomJSDriver(caps);
Run Code Online (Sandbox Code Playgroud)
上面的这一行似乎不是问题,因为从我的测试中我可以看到像上面这样的多行在遇到上述错误之前执行没有错误.
此外,Session.NegotiatedCapabilities有"acceptSslCerts":false,我无法使用此代码块作为PhantomJS驱动程序初始化程序解决:
Jan 16, 2016 6:23:40 AM org.openqa.selenium.phantomjs.PhantomJSDriverService <init>
INFO: arguments: [--web-security=no, --ignore-ssl-errors=yes, --webdriver=33238, --webdriver-logfile=/Users/richard/YeezyBot/phantomjsdriver.log]
Run Code Online (Sandbox Code Playgroud)
我可以看到参数是在控制台上传递的......
((JavascriptExecutor) driver).executeScript("arguments[0].click();", buttonToClick);
Run Code Online (Sandbox Code Playgroud)
最后,一切都适用于Firefox WebDriver.
这已经成为一个问题很长一段时间了,我从来没有找到解决方案,虽然这里的其他问题是相似的,但它们并不完全是我所看到的.
问题是,用于单步执行代码的SOURCE不会刷新每个页面加载.是的,我已经禁用了缓存 - 但问题不在于浏览器缓存,而是DEBUGGER SOURCE缓存.
在我的webapp(Struts2和Tomcat)中,我有一个带标题栏的主页面并离开了菜单.中心内容是加载所有适当的JSP的iframe.我在导航的大部分时间使用一个"动作",不同的结果显示不同的页面.问题是,我导航时,chrome调试器SOURCES窗格中的NAME不会更改.实际页面更改,但由于名称未更改,Chrome不会将新源带入调试器窗口.那么如果我有'调试器',会发生什么?在正在加载的页面的第200行,它停止,并显示"源" - 但它是第200行的OLD源,而不是正在运行的实际源!如果我右键单击SOURCES窗格中的旧源文件,并在"网络面板显示"中显示真实源,因为它实际上是从我的服务器加载的,但是调试源不会更改.
如何解决Chrome中的这个错误并强制源在调试器显示中重新加载?
**更新**不,这与其他问题不一样.David Fahlander的答案似乎符合我所说的.ACTUAL javascript源是刷新的,并在RESOURCES和NETWORK窗格中正确显示.但是在完成实际调试的SOURCE窗格中,新源不会刷新.而且很难调试你看不到的代码!
虽然我的测试完全正常
$ cross-env NODE_ENV=test nyc --require babel-register mocha
Run Code Online (Sandbox Code Playgroud)
一切都是零,在./coverage目录内也没有覆盖信息:(
我的项目非常基础(ES2015):
./lib.js
./test/lib.spec.js
Run Code Online (Sandbox Code Playgroud)
这是我的.babelrc:
{
"presets": [
"es2015",
"stage-0"
],
"plugins": [
"transform-decorators-legacy",
"transform-class-properties"
],
"env": {
"test": {
"plugins": [
"istanbul"
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
和.nycrc文件
{
"check-coverage": false,
"lines": 99,
"statements": 99,
"functions": 99,
"branches": 99,
"include": [
"./lib.js"
],
"reporter": [
"lcov",
"text-summary"
],
"require": [],
"extension": [
".js"
],
"cache": false,
"all": false,
"report-dir": "./coverage"
}
Run Code Online (Sandbox Code Playgroud)
}
我也使用ES5进行了相同的设置,结果相同.有什么建议为什么我没有报道?
更新:解决方案可以在这里找到
在普通电源模式下,在iOS11上(在iPhone 8和X上测试),我可以隐藏视频元素阴影根内的按钮元素覆盖.
启用低功耗模式后,我的伪元素将无法再隐藏按钮元素覆盖.这是怎么回事?如何在低功耗模式下隐藏按钮元素?
我的CSS
// Placed outside Shadow DOM in my SCSS file.
video::-webkit-media-controls-start-playback-button {
display: none !important;
}
Run Code Online (Sandbox Code Playgroud)
要修改的DOM元素
<video style="display: inline;" class="playerElement" poster="" autoplay="true" width="100%" oncontextmenu="return false;">
// Shadow Content (User Agent)
<style>
// Lots of default styles with Apple legal language.
</style>
<div class="media-controls-container">
<div pseudo="-webkit-media-text-track-container" class="visible-controls-bar" style="display: none;"></div>
<div class="media-controls inline ios uses-ltr-user-interface-layout-direction" style="width: 375px; height: 275px;">
<button class="play-pause paused center" aria-label="Play" style="width: 11px; height: 13px; left: 16px;">
<div class="background-tint">
<div class="blur"></div>
<div class="tint"></div>
</div>
<picture …Run Code Online (Sandbox Code Playgroud) 我正在尝试严格使用原生ES模块而不会自行编写代码,但有时我会发现第三方库与Webpack和babel一起打包为UMD,这似乎是目前最常见的格式.
这不是很好的导入
import { mat4 } from 'https://cdnjs.cloudflare.com/ajax/libs/gl-matrix/2.4.0/gl-matrix.js'
Run Code Online (Sandbox Code Playgroud)
SyntaxError中的结果:请求的模块不提供名为"mat4"的导出
我不认为UMD应该被称为普遍的.
当然我可以直接导入src然后我必须采取他们可能有的任何babel配置.我试图避免转换我的任何代码,我只想转换所有UMD node_modules以在我的代码中使用.
我正在寻找的是与此相反的:https://www.npmjs.com/package/babel-plugin-transform-es2015-modules-umd
我想从UMD转换为ES.通过这种方式,我可以相信图书馆已经标准化了任何非标准版本,我可以正常导入它.我在网上搜索过但我没有找到任何东西.我尝试使用commonjs es模块插件,但它不起作用,因为导出声明不在顶层.
有没有人知道是否有插件可以做到这一点,或者任何人都可以提供一些关于他们如何处理这种情况的想法?
加载视频后使用polyfills.js和video.js,控制台显示错误:
__PRE__
我想方法解决错误,顺便说一下视频正在播放,除了显示此错误外没有其他问题.
我正在尝试将Angular 6应用程序的某些组件导出到库中。不幸的是,我需要使用WebToolkit来连接到其他人的专有服务构建,该服务只能作为纯JavaScript文件使用。反过来,此文件也需要jQuery和require.js。
没有库,我通过将这些js文件添加到.angular-cli.json下面来解决了这个问题"scripts"
{
...,
scripts: [
"node_modules/jquery/dist/jquery.js",
"node_modules/require/require.js",
"path/to/my/magic/library.js"
],
...
}
Run Code Online (Sandbox Code Playgroud)
现在构建我的角度库,我想将那些脚本内置到我自己的库代码中,这样我的客户仍然可以通过执行一个npm-install并将其导入他们的.module.ts文件中的简单方式来使用它。
Angular-CLI 6是否可以通过某种方式实现?还是您有其他建议可以实现我的库的简单安装?
简短的问题是; "我可以 - 在Safari中 - 在iPad上(专门 - 不需要其他浏览器或设备) - 向上或向下缩放PDF文档以适应固定宽度的iframe或对象标记吗?"
而长期的问题; 我有以下标记 - 用于在DIV中显示可滚动的PDF.此标记将用于iPad的Cordova/Phonegap应用程序.Javascript智能是通过Backbone;
<div class="pdf-container-outer">
<div class="pdf-container">
<iframe src="..." />
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
以及相关的CSS(为了便于阅读而减少);
.pdf-container-outer {
width: 800px;
height: 800px;
overflow: scroll !important;
-webkit-overflow-scrolling: touch;
}
.pdf-container {
width: 800px;
}
iframe {
width: 800px;
}
Run Code Online (Sandbox Code Playgroud)
PDF文档本身是A4大小 - 然后pdf页面的像素尺寸为595px X 841px.在Safari中 - 文档始终显示为"100%" - 即无论我在iframe上设置的宽度(或对象标记 - 结果是相同的),出现的内部PDF总是只有~595px宽(+约任何一方都有7-8px的保证金).他们不放大.
iframe宽度需要根据用户是否以纵向或横向模式查看网站来改变...〜横向~800px和纵向~520px.
鉴于我知道我正在显示的文档中的页面数量 - 我知道显示所有文档所需的iframe的完整维度.所以我玩过的技巧之一就是用一些内联样式设置iframe的大小,然后对它应用变换 - 扩展它,a la;
<iframe src="..." style="width: 610px; height: 14000px; -webkit-transform: scale(1.31); -webkit-transform-origin: top left;" />
Run Code Online (Sandbox Code Playgroud)
即应用的变换将610px向上扩展131%= 800px宽(在横向模式下).纵向 - 比例因子约为0.8. …
javascript ×8
angular ×2
css ×2
angular-cli ×1
angularjs ×1
babeljs ×1
debugging ×1
ghostdriver ×1
html ×1
ios ×1
iphone ×1
java ×1
mocha.js ×1
mongodb ×1
mongoose ×1
node.js ×1
nyc ×1
phantomjs ×1
safari ×1
selenium ×1
shadow-dom ×1
twitter ×1
uiwebview ×1
unit-testing ×1
webpack ×1
webview ×1