所以这里我的问题:我有一个pdf文件作为我从服务器获得的base64字符串.我想使用此字符串直接将PDF显示到浏览器,或者在单击链接时为其选择"另存为...".这里是我使用的代码:
<!doctype>
<html>
<head>
<title>jsPDF</title>
<script type="text/javascript" src="../libs/base64.js"></script>
<script type="text/javascript" src="../libs/sprintf.js"></script>
<script type="text/javascript" src="../jspdf.js"></script>
<script type="text/javascript">
function demo1() {
jsPDF.init();
jsPDF.addPage();
jsPDF.text(20, 20, 'Hello world!');
jsPDF.text(20, 30, 'This is client-side Javascript, pumping out a PDF.');
// Making Data URI
var out = jsPDF.output();
var url = 'data:application/pdf;base64,' + Base64.encode(out);
document.location.href = url;
}
</script>
</head>
<body>
<a href="javascript:demo1()">Run Code</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
它与Chrome和Safari配合使用.Firefox确实识别pdf但不显示它,因为FF要求存在扩展,但数据uri在这种情况下没有.我坚持这里的原因,如果chrome和safari得到它的工作,那么必须有FF和IE的解决方案
我知道有一些相关的问题,但不是真正的一个,现在也有点旧.我知道一个解决方法是在服务器端生成pdf,但我想在客户端生成它.
那么请聪明的人,是否有可能通过一些黑客或额外的JS下载插件?
我正在使用Angular 4构建一个webapp.我有一个顶级路由模块和一个单独的路由模块,用于每个子模块(例如HomeModule).
这是我的顶级路由配置:
export const ROUTES: Routes = [
{path: '', loadChildren: './home#HomeModule'},
{path: '**', component: NotFoundComponent},
];
Run Code Online (Sandbox Code Playgroud)
当我跑ng server,我得到一个奇怪的错误,home找不到该模块.该应用程序无法在浏览器中运行.
奇怪的部分如下:当文件被更改并且webpack重新编译项目时,一切正常并且路由工作.
该错误仅在我运行时出现ng serve.
这是我运行时遇到的错误ng serve,而不是因为文件更改而重新编译项目的错误:
ERROR in Error: Could not resolve module ./home relative to /path/to/my/project/src/app/app.module.ts
at StaticSymbolResolver.getSymbolByModule (/path/to/my/project/node_modules/@angular/compiler/bundles/compiler.umd.js:31884:30)
at StaticReflector.resolveExternalReference (/path/to/my/project/node_modules/@angular/compiler/bundles/compiler.umd.js:30350:62)
at parseLazyRoute (/path/to/my/project/node_modules/@angular/compiler/bundles/compiler.umd.js:28616:55)
at listLazyRoutes (/path/to/my/project/node_modules/@angular/compiler/bundles/compiler.umd.js:28578:36)
at visitLazyRoute (/path/to/my/project/node_modules/@angular/compiler/bundles/compiler.umd.js:29995:47)
at AotCompiler.listLazyRoutes (/path/to/my/project/node_modules/@angular/compiler/bundles/compiler.umd.js:29963:20)
at AngularCompilerProgram.listLazyRoutes (/path/to/my/project/node_modules/@angular/compiler-cli/src/transformers/program.js:157:30)
at Function.NgTools_InternalApi_NG_2.listLazyRoutes (/path/to/my/project/node_modules/@angular/compiler-cli/src/ngtools_api.js:44:36)
at AngularCompilerPlugin._getLazyRoutesFromNgtools (/path/to/my/project/node_modules/@ngtools/webpack/src/angular_compiler_plugin.js:247:66)
at Promise.resolve.then.then (/path/to/my/project/node_modules/@ngtools/webpack/src/angular_compiler_plugin.js:538:50)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我有用于不同组件的多个 API,所以我应该更喜欢做什么,是将所有功能放在一个服务中还是我应该创建多个服务。示例组件 1 使用了 10 个总函数中的 4 个特定函数。我应该为 10 个功能创建 1 个服务还是两个不同的服务分别包含 4 个和 6 个功能
我需要制作一个简单的确认窗口,我看到了很多关于如何使用额外操作来完成的示例(例如等到表单的文件上传不是字段)。但是我只需要创建一个带有默认文本的默认确认窗口(如下图所示),以便在用户想要离开当前页面时显示它。而且我无法完全理解我应该在处理before unload事件中证明什么逻辑。

如果它重复了一些问题,我最近很抱歉,但是,我没有找到任何解决方案。所以我有:
例子.guard.ts
export interface CanComponentDeactivate {
canDeactivate: () => Observable<boolean> | boolean;
}
@Injectable()
export class ExampleGuard implements CanDeactivate<CanComponentDeactivate> {
constructor() { }
canDeactivate(component: CanComponentDeactivate): boolean | Observable<boolean> {
return component.canDeactivate() ?
true :
confirm('message'); // <<< does confirm window should appear from here?
}
}
Run Code Online (Sandbox Code Playgroud)
示例.component.ts
export class ExampleComponent implements CanComponentDeactivate {
counstructor() { }
@HostListener('window:beforeunload', ['$event'])
canDeactivate($event: any): Observable<boolean> | boolean {
if (!this.canDeactivate($event)) {
// what should I do here?
}
}
} …Run Code Online (Sandbox Code Playgroud) 下面是我的文件夹结构。
app
- common
- header
header.component.css
header.component.html
header.component.ts
- footer
footer.component.css
footer.component.html
footer.component.ts
- index
index.component.css
index.component.ts
index.component.html
index.module.ts
- lessons
lesson1(another folder)
lesson2(folder)
lesson.module.ts
app.component.css
app.component.ts
app.component.html
app.module.ts
Run Code Online (Sandbox Code Playgroud)
我已经在app.module中导入了页眉和页脚组件,index.module,lesson.module并使用
<app-header></app-header>
<app-navbar></app-navbar>
Run Code Online (Sandbox Code Playgroud)
在index.component.html,lesson1.component.html,lesson2.component.html中。
但是我发现“ app-header”不是已知的元素错误。有人可以帮助我解决此错误吗?
如果我直接在index.module.ts中包含页眉和页脚组件,它将很好地工作
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { RouterModule, Routes } from '@angular/router';
import * as $ from 'jquery';
import { AppComponent } from …Run Code Online (Sandbox Code Playgroud) 一段时间以来,我一直在制作和维护一个 web 应用程序,它具有全屏单页设计,并在单独的容器中显示项目列表,因此没有通常会触发地址和导航栏的经典滚动行为隐藏在 Safari 和 Chrome 等移动浏览器上。因此,在智能手机浏览器上使用此 Web 应用程序时,顶部地址栏和底部导航栏始终可见。这在 5 英寸以上的大型手机上不是什么大问题,但是当应用程序在 iPhone SE 等较小的设备上使用时,这几百个像素会产生很大的不同。
有一段时间我认为这是一个不可避免的问题,就忍了,但最近我看到有人在 iOS 的 Chrome 上使用谷歌地图网页版,点击某个地址后,导航栏和地址栏消失了,它看起来像一个真正的全屏应用程序。所以这意味着有一种方法可以模拟滚动类型的事件,使移动浏览器隐藏导航栏。
关于如何做到这一点的任何想法/经验?
我们只是在动机托管上购买新的专用服务器
所以当我尝试部署基于Symfony 4的项目时
我得到这个错误
Notice: SessionHandler::gc(): ps_files_cleanup_dir: opendir(/var/cpanel/php/sessions/ea-php72) failed: Permission denied (13)
我已经在StackOverflow上搜索了相同的问题,但对我没有帮助
我使用 ListView 创建自己的组权限页面,以显示带有 PK DetailView 链接的 Django 组列表,然后提供更改链接以使用 UpdateView 更改权限。
我想用pk把UpdateView的success_url变成DetailView,怎么做。
我的代码像:
视图.py
class GroupCreation(PermissionRequiredMixin, CreateView):
permission_required = 'add_group'
model = Group
form_class = GroupCreateModelForm
success_url = reverse_lazy('account:group_list')
template_name = 'accounts/groups/group_creation.html'
class GroupsListView(PermissionRequiredMixin, ListView):
permission_required = 'view_group'
allow_empty = True
model = Group
ordering = 'name'
template_name = 'accounts/groups/groups_list.html'
form = GroupCreateModelForm
extra_context = {'form': form, }
class GroupDetailView(PermissionRequiredMixin, DetailView):
permission_required = 'view_group'
model = Group
template_name = 'accounts/groups/group_detail.html'
class GroupUpdateView(PermissionRequiredMixin, UpdateView):
permission_required = 'change_group'
model = Group
fields = …Run Code Online (Sandbox Code Playgroud) angular ×4
base64 ×1
deployment ×1
django ×1
firefox ×1
javascript ×1
mobile ×1
pdf ×1
php ×1
python ×1
scroll ×1
session ×1
symfony ×1
typescript ×1