我在桌面 safari 上使用 javascript 时遇到一些问题,但在移动设备上工作正常。
当我尝试运行时:
return Math.trunc(num * Math.pow(10, 2)) / Math.pow(10, 2);
Run Code Online (Sandbox Code Playgroud)
我正在控制台上:
TypeError: 'undefined' is not a function (evaluating 'Math.trunc(num * Math.pow(10, 2))')
Run Code Online (Sandbox Code Playgroud)
知道为什么会这样吗?在其他浏览器上工作正常,我不知道为什么(我从未使用过 safari)。
无论我如何尝试,我都无法让该动画在 Safari 12 中正常工作。我已经尝试过供应商前缀等,但没有任何效果。
它在 Chrome 中运行良好。有人有主意吗?
<div class="spinners"></div>
Run Code Online (Sandbox Code Playgroud)
这是CSS:
@keyframes spinx {
0% {
transform: rotate3d(0, 1, 1, 360deg);
}
100% {
transform: rotate3d(0, 0, 0, 360deg);
}
}
.spinners {
display: block;
width: 100%;
height: 4rem;
overflow: hidden;
position: relative;
}
.spinners:before, .spinners:after {
content: "";
width: 4rem;
height: 4rem;
border: 3px solid red;
border-radius: 50%;
position: absolute;
top: 50%;
left: 50%;
margin: -2rem 0 0 -2rem;
display: block;
transform-origin: 50% 50% 0;
}
.spinners:before {
animation: spinx …Run Code Online (Sandbox Code Playgroud) Mac 和 Windows 上最新的 Firefox 63.0 版本以某种方式破坏了我为电子商务网站的管理后端构建的登录。这以前工作得很好。我使用 PHP。
使用有效凭据成功登录后,$_SESSION['admin_logged_in']变量将被设置为TRUE,并且我已正确登录并重定向到起始页面。然而,当我尝试导航到管理站点中的任何其他页面时,我会立即注销,就好像会话变量突然丢失一样。
在最开始的每个页面(包括起始页面)上,我都包含一个简短的登录检查脚本,如下所示:
<?php
//start session
session_start() ;
//check user is logged in
if (($_SESSION['admin_logged_in'] !== TRUE) || (!isset($_SESSION['admin_logged_in']))) {
header("location: /index.php") ;
$_SESSION['admin_reason'] = "illegal" ;
exit;
}
?>
Run Code Online (Sandbox Code Playgroud)
我可能认为这是 Firefox 的一个错误,但最近我也被 iOS 12 和 MacOS Mojave 上最新版本的 Safari 注销了,通常是在浏览几个页面后。
目前在 Opera 或 Chrome 上工作且没有问题(在 Mac 上测试)。
我尝试过清除 Firefox 中的缓存并调整隐私设置,但没有成功。我已经与我的网络主机交谈过,他们不知道任何服务器端问题或更改。
但是,如果 PHP 代码和会话变量存在问题,因为这是在服务器端处理的,那么它可能无法在任何浏览器上运行,并且以前也无法运行?
感谢您的任何建议。
我设法解决了这个问题,请参阅下面的答案。
我希望使用自定义控件来播放音频文件,以触发自定义按钮上的 .play() 方法。需要明确的是,我并不是想让音频自动播放。在 Chrome 中一切正常,但在 Safari 中出现错误:
未处理的承诺拒绝:NotAllowedError:当前上下文中的用户代理或平台不允许该请求,可能是因为用户拒绝了权限。
该项目是使用 React 和 React Router 构建的,所以我想知道它是否可以在我的 useEffect() 挂钩中修复。我尝试过启用音频元素上的控件并使用 CSS 将它们从 DOM 中删除,但没有成功。
import React, { useState, useRef, useEffect } from "react";
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
import { gsap } from "gsap";
function RadioPlayerNav(props) {
const audioEl = useRef(null);
const [isPlaying, setIsPlaying] = useState(false);
const playingTitle = document.querySelector(".radio-player-nav .title p");
const toPX = (value) => {
return (parseFloat(value) / 100) * (/vh/gi.test(value) ? window.innerHeight : window.innerWidth);
}; …Run Code Online (Sandbox Code Playgroud) 在 IOS 中,我现在有以下 UserAgent:
“Mozilla/5.0(Macintosh;Intel Mac OS X 10_15_6)AppleWebKit/605.1.15(KHTML,如 Gecko)版本/15.2 Safari/605.1.15”
在我的 PC 上的 Safari 上,我有以下内容:
“Mozilla/5.0(Macintosh;Intel Mac OS X 10_15_7)AppleWebKit/605.1.15(KHTML,如 Gecko)版本/15.1 Safari/605.1.15”
但我需要检测我的脚本是否在 iPad 或 iPhone 上运行,因为我需要安装 MobileDragDrop Polyfill ( https://github.com/timruffles/mobile-drag-drop )
StackOverflow 上关于此问题的所有答案均在 IOS 15 之前,导航器属性是否仍包含“iPad”或“iPhone”
safari浏览器中lookbehind正则表达式的替代品是什么?
\n我正在使用一个正则表达式来排除 http
\n这是我的正则表达式:
\n\xc2\xa0
\nvalue: /^((\\w+)(?<!http):\\/\\/).+$/,\nRun Code Online (Sandbox Code Playgroud)\n这在 chrome 中工作正常,但在 safari 中失败。到处看看这个。
\n这已经困扰了我一段时间,我想知道如何在代码中防止它.我正在使用safari测试我的代码,我有很多表单,当我输入以相同字母开头的东西时,safari会把这个愚蠢的酒吧放进去.我想知道是否可以预防.

谢谢您的帮助!
我想打开我的应用程序中的所有外部链接(UIWebView)不在应用程序内部,而是在Safari中.我怎样才能做到这一点?我已经实现了UiWebViewDelegate.
我的问题的工作解决方案如下:
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
if navigationType == UIWebViewNavigationType.LinkClicked{
UIApplication.sharedApplication().openURL(request.URL!)
return false
}
return true
}
Run Code Online (Sandbox Code Playgroud)